2017-09-07 17 views
0

他の投稿や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パラメータを追加する必要があります

答えて

1

:ここ

<?php $procedures = get_pages(array(
    'meta_key' => '_wp_page_template', 
    'meta_value' => 'template-procedure-minimal.php', 
    'hierarchical' => 0 
)); ?> 

詳細https://codex.wordpress.org/Function_Reference/get_pages

+0

'注:サブを見つけることからmeta_key&親ページ検索を防ぐことができます。このデフォルト値ページ。これらのパラメータが正しく動作するためには、 'hierarchical' => 0に設定する必要があります。 - 興味深い!ありがとう! – Lee

関連する問題