web-dev-qa-db-ja.com

Jetpackの無限スクロールレンダリング - 投稿の種類によって異なりますか?

私は現在2つの投稿タイプを持つテーマに取り組んでいます - 1つは通常の "投稿"投稿タイプで、もう1つはポートフォリオ投稿用です - "mytheme_portfolio"。

次のように、JetPackの無限スクロールを使って新しい投稿をレンダリングしています。

function mytheme_render_infinite_scroll() {
    while ( have_posts() ) : the_post();

        get_template_part( 'content', 'archive-portfolio' );

    endwhile;
}

function mytheme_jetpack_setup() {
    add_theme_support( 'infinite-scroll', array(
        'container' => 'content',
        'type'  =>  'click',
        'render' => 'mytheme_render_infinite_scroll',
    ) );
}
add_action( 'after_setup_theme', 'mytheme_jetpack_setup' );

これはうまく機能していますが、現在表示している投稿タイプのアーカイブ/カテゴリ/タグページに応じて、どのように異なるcontent-テンプレートファイルをレンダリングするかを指定することができますか。今は無限スクロールが発生したときにcontent-archive-portfolio.phpを呼び出しています。ポートフォリオの投稿が表示されている場合はcontent-archive-portfolio.phpを、ブログが表示されている場合はcontent.phpを呼び出します。

どうぞよろしくお願いいたします。

2
Sarah

上記のmytheme_render_infinite_scroll関数をこれで置き換えます。

function mytheme_render_infinite_scroll() {
    while ( have_posts() ) : the_post();
        if ('mytheme_portfolio' == get_post_type()) :
            get_template_part( 'content', 'archive-portfolio' );
        else :
            get_template_part( 'content', get_post_format() );
        endif;
    endwhile;
}
4
Sarah