web-dev-qa-db-fra.com

Jetpack infinite scroll render - différencier selon le type de message?

Je travaille actuellement sur un thème qui comporte deux types de publication - l’une est le type de publication "posts" normal, et l’autre concerne les publications de portefeuille - "mytheme_portfolio".

J'utilise le défilement infini de JetPack pour afficher de nouveaux messages, comme suit:

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' );

Cela fonctionne bien, mais je me demande comment je peux spécifier différents fichiers de modèle content- à restituer en fonction de la page d'archive/catégorie/balise du type de message que vous consultez actuellement. En l’occurrence, j’appelle content-archive-portfolio.php lorsque le défilement infini est déclenché. Ce que je voudrais, c’est d’appeler content-archive-portfolio.php si les publications du portefeuille sont en cours de visualisation, mais content.php si le blog est en cours de visualisation.

Toute aide serait grandement appréciée, merci!

2
Sarah

Remplacez la fonction mytheme_render_infinite_scroll ci-dessus par ceci:

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