根据其他的职位,以及文档的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>
Run Code Online (Sandbox Code Playgroud)
我specificing模板文件是在我的当前主题的根,与标准一起page.php,single.php等模板文件存在,并且正在使用。
当我将其更改为 even 时page.php,我可以确认有问题,返回时数组仍然为空。
有什么我想念的吗?
更新
感谢下面的回复,这确实解决了我的问题。但是,我现在想问一下是否可以有多个页面模板?
如果我尝试以下操作,返回的数组仅包含在数组中找到的最后一个模板。
<?php $procedures = get_pages(array(
'meta_key' => '_wp_page_template',
'meta_value' => array('template-procedure.php', 'template-procedure-minimal.php')
)); ?>
Run Code Online (Sandbox Code Playgroud)
小智 5
您可能应该像这样hierarchical向get_pages函数添加参数:
<?php $procedures = get_pages(array(
'meta_key' => '_wp_page_template',
'meta_value' => 'template-procedure-minimal.php',
'hierarchical' => 0
)); ?>
Run Code Online (Sandbox Code Playgroud)
更多细节在这里https://codex.wordpress.org/Function_Reference/get_pages
| 归档时间: |
|
| 查看次数: |
1508 次 |
| 最近记录: |