0

現在の親ページのすべての子ページを呼び出すクエリを作成しました。これはうまく機能しますが、各子ページにはカスタム テンプレートがあります。テンプレートを考慮してカスタム クエリ パラメータを追加する方法がわかりません。現在、各子ページの the_content を照会していますが、それはテンプレートを考慮していません。

クエリの変更を手伝ってくれる人はいますか?

<?php $children = get_pages( 
    array(
        'sort_column' => 'menu_order',
        'sort_order' => 'ASC',
        'hierarchical' => 0,
        'parent' => $post->ID,
        'post_type' => 'projects',
        'meta_query' => array(
            array(
                'key' => '_wp_page_template',
                'value' => 'template-city.php', // template name as stored in the dB
            )
        )
    ));

foreach( $children as $post ) { 
        setup_postdata( $post ); ?>
    <div class="section-container">
        <?php the_content(); ?>
    </div>
<?php } ?>
4

2 に答える 2

1

get_pages関数は を使用しないと思いますmeta_query。次のようなことをする必要があります。

$children = get_pages( 
    array(
        'sort_column' => 'menu_order',
        'sort_order' => 'ASC',
        'hierarchical' => 0,
        'parent' => $post->ID,
        'post_type' => 'projects',
        'meta_key' => '_wp_page_template',
        'meta_value' => 'template-city.php',
    ));

または、 を使用するget_posts関数を使用しますmeta_query

于 2013-07-07T06:14:02.123 に答える
1

get_post_meta を使用できます。

template_redirect アクションを使用:

function my_page_template_redirect()
{
    global $post;
    if(get_post_type($post) == 'projects' )
    {
         $tpl = get_post_meta($post->ID, '_wp_page_template');
         if ($tpl) {
             include( get_template_directory() . $tpl );
             exit();
         }
    }
}    
add_action( 'template_redirect', 'my_page_template_redirect' );
于 2013-07-07T14:15:49.403 に答える