当我得到wp_get_themes()
?
$args = array(
\'allowed\' => true
);
$themes = wp_get_themes( );
foreach ($themes as $theme) {
$argument_to_pass_to_switch_theme = ??????
}
当我得到wp_get_themes()
?
$args = array(
\'allowed\' => true
);
$themes = wp_get_themes( );
foreach ($themes as $theme) {
$argument_to_pass_to_switch_theme = ??????
}
如果我理解你的问题,你应该在你的foreach
:
$argument_to_pass_to_switch_theme = $theme->get_stylesheet();
看看文档:功能wp_get_themes()
...
“…返回基于参数的WP\\U主题对象数组。”
本课程WP_Theme
有一个方法get_stylesheet()
, 哪一个
“…返回一个字符串,其中包含主题根目录中主题的“样式表”文件的目录名。如果这是子主题,则是子主题中的目录。”
以及功能switch_theme()
...
“…接受一个参数:$主题的样式表。($样式表是文件夹slug的名称。”
wp_get_themes()
返回aWP_Theme
对象,其中一种方法,get_stylesheet()
将返回需要传递给的值switch_theme()
您不太可能将“变量”设置为echo
后来如果您有多个主题,并且几乎总是这样(因为您应该保留一个捆绑主题以防万一),那么您将有多个变量,因此您需要创建一个数组而不是字符串。
$themes = wp_get_themes();
foreach ($themes as $theme) {
$argument_to_pass_to_switch_theme[] = $theme->get_stylesheet();
}
var_dump($argument_to_pass_to_switch_theme);
如果您按照模拟的方式运行代码。。。$themes = wp_get_themes();
foreach ($themes as $theme) {
$argument_to_pass_to_switch_theme = $theme->get_stylesheet();
}
var_dump($argument_to_pass_to_switch_theme);
。。。您将覆盖$argument_to_pass_to_switch_theme
变量,并且只以循环中最后一个主题的样式表名称结束。我已经注册了一个名为“Services”的自定义帖子类型,但当我给这篇帖子提供模板“single Services.php”时,它不接受这个,而是选择了“homepage.php”模板,你能告诉我这个问题吗?它也没有使用“archive services.php”模板,而是使用blog模板(index.php)使现代化代码如下:add_action(\'init\', \'services_register\'); function services_register() { $