根据其他人的帖子和文档 for get_pages(),您可以只使用特定的模板类型过滤页面返回的数组。
但是,对于我来说,这是不起作用的,我也不知道为什么,我只得到一个空数组返回。
这是我的确切密码:
<?php $procedures = get_pages(array(
'meta_key' => '_wp_page_template',
'meta_value' => 'template-procedure-minimal.php'
)); //var_dump($procedures); ?>
<select name="procedureID" id="procedureID" class="form-control">
<?php foreach($procedures as $p) {
echo '<option value="'.$p->ID.'"';
if($p->ID == $bv_set->procedureID) {
echo ' selected="selected"';
}
echo '>'.$p->post_title.'</option>';
} ?>
</select>我指定的模板文件位于当前主题的根目录中,以及标准的page.php、single.php等。模板文件存在并正在使用。
当我将它更改为甚至page.php时,我可以确认有什么问题,当返回时数组仍然是空的。
我遗漏了什么吗?
更新
感谢以下的回复,这确实解决了我的问题。但是,我现在想问一下,是否有可能有多个页面模板?
如果我尝试下面的操作,返回的数组只包含数组中的最后一个模板。
<?php $procedures = get_pages(array(
'meta_key' => '_wp_page_template',
'meta_value' => array('template-procedure.php', 'template-procedure-minimal.php')
)); ?>https://stackoverflow.com/questions/46094460
复制相似问题