他の投稿やget_pages()
のdocsによれば、特定のテンプレートタイプのみを使用してページから返される配列をフィルタリングできます。_wp_page_templateは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>
私はspecificingだテンプレートファイルは、標準page.php
と一緒に、私の現在のテーマのルートにあるsingle.php
などのテンプレートファイルが存在する、とされています中古。
page.php
に変更すると何か問題があることが確認できます。返された場合、配列はまだ空です。
紛失しているものはありますか?以下の応答のための
UPDATE
おかげで、これは私の問題を解決しました。しかし、複数のページテンプレートを使用できるかどうか今質問したいと思います。
私が以下を試してみると、配列には最後に見つかったテンプレートだけが返されます。
<?php $procedures = get_pages(array(
'meta_key' => '_wp_page_template',
'meta_value' => array('template-procedure.php', 'template-procedure-minimal.php')
)); ?>
おそらく、このようなあなたの
get_pages
機能に
hierarchical
パラメータを追加する必要があります
'注:サブを見つけることからmeta_key&親ページ検索を防ぐことができます。このデフォルト値ページ。これらのパラメータが正しく動作するためには、 'hierarchical' => 0に設定する必要があります。 - 興味深い!ありがとう! – Lee