我有这个问题,我需要获得所有页面模板。我知道有很多方法可以根据他们的名字得到他们。我知道我可以包含一个页面模板,但我正在尝试将它们包含在索引页面的循环中。我刚刚安装了2012主题,修改了标题以包含我的脚本。我使用了Milo提供的一个功能,将所有帖子和页面加载到正在运行的主页中。现在,我需要包括所有模板,甚至那些我不知道其名称的模板。
在抄本中,我发现了一个函数get_page_templates() 这似乎不再有效了。它给出了这个片段
<?php
$templates = get_page_templates();
foreach ( $templates as $template_name => $template_filename ) {
echo "$template_name ($template_filename)<br />";
}
?>
此代码段本应完成此操作,但它给了我一个无效的函数错误。我把get\\u page\\u template()弄得一团糟,但它只会返回页面。php
查看\\u wp\\u post\\u meta中的数据库,我看到字段\\u wp\\u page\\u template,我可以看到它包含了我需要包含的所有模板名称。我只是不知道如何把这些名字从这个领域中去掉。
我试过这个
$template = get_post_meta($post->ID,\'_wp_page_template\',true);
但当我检查$模板的值时,我什么也没找到。
你能帮忙吗?
最合适的回答,由SO网友:brasofilo 整理而成
检查get_page_templates()
在core, 我找到了一种不会打破主题的解决方法,如:
致命错误:调用未定义的函数get\\u page\\u templates()
我刚用过这个<body>
工作正常:
$templates = wp_get_theme()->get_page_templates();
foreach ( $templates as $template_name => $template_filename )
{
echo "$template_name ($template_filename)<br />";
}