wordpress函数文件,如何循环require_once?

时间:2014-02-05 23:36:59

标签: wordpress loops foreach include require-once

我试图遍历wordpress functions.php文件中的一些require_once语句,看起来像这样

// Initial theme setup
require_once locate_template('/inc/init.php');

// Register widget areas
require_once locate_template('/inc/sidebar.php');

...

为什么以下循环不起作用?

$theme_includes = array(
  '/inc/init.php', // Initial theme setup
  '/inc/sidebar.php', // Register widget areas
  '/inc/scripts.php', // Register scripts and stylesheets
  '/inc/nav.php', // Main navigation
  '/inc/cleanup.php', // Cleanup
  '/inc/customizer.php',
  '/inc/template-tags.php', // Custom template tags
  '/inc/extras.php', // No theme functions
  '/inc/analytics.php' // Google Analytics
 );

foreach ( $theme_includes as $include ) {
  require_once locate_template( $include );
}

我没有收到任何错误消息,但文件未加载

1 个答案:

答案 0 :(得分:0)

如果选中the Wordpress codex of locate_template(),您会发现该功能需要3个参数:

locate_template( $template_names, $load, $require_once )
  1. $template_names:应该是要搜索的文件/模板数组 对
  2. $load:boolean,如果设置为true,则会在找到时加载文件
  3. $require_once:boolean,如果设置为true将使用require_once php函数加载文件
  4. 所以在这种情况下你可以忘记foreach并将数组作为第一个参数传递,并将另外两个参数设置为true:

    $theme_includes = array(
          '/inc/init.php', // Initial theme setup
          '/inc/sidebar.php', // Register widget areas
          '/inc/scripts.php', // Register scripts and stylesheets
          '/inc/nav.php', // Main navigation
          '/inc/cleanup.php', // Cleanup
          '/inc/customizer.php',
          '/inc/template-tags.php', // Custom template tags
          '/inc/extras.php', // No theme functions
          '/inc/analytics.php' // Google Analytics
    );
    
    locate_template( $theme_includes, true, true );