我试图遍历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 );
}
我没有收到任何错误消息,但文件未加载
答案 0 :(得分:0)
如果选中the Wordpress codex of locate_template(),您会发现该功能需要3个参数:
locate_template( $template_names, $load, $require_once )
$template_names
:应该是要搜索的文件/模板数组
对$load
:boolean,如果设置为true,则会在找到时加载文件$require_once
:boolean,如果设置为true将使用require_once php函数加载文件所以在这种情况下你可以忘记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 );