web-dev-qa-db-fra.com

Hiérarchie des modèles concernant la pagination après le fichier page-page.php

Rapide, simple. J'ai front-page.php travaille dans Wordpress, et ces boucles couvrent la boucle principale pour mes derniers messages. Le problème est le modèle de pagination.

Quand j'arrive à site.com/page/2, il affiche le même modèle de fichier front-page.php, mais avec le second tour de messages. Ce que je veux, c'est montrer un autre modèle de fichier, tel que paged.php, mais même pas archive.php ni date.php ne s'affiche.

Y at-il un code pour cela, au lieu d’écrire if (!is_paged()) en enveloppant l’ensemble du fichier page-page.php?

1
DarkGhostHunter

Ajoutez un filtre à frontpage_template et cochez la variable paged, en ajoutant votre propre modèle lorsqu'il dépasse la première page. J'utilise paged.php dans cet exemple:

function wpa56889_template_filter( $templates = '' ){
    $paged = get_query_var( 'paged' );
    if( $paged > 1 ) :
        if( !is_array( $templates ) && !empty( $templates ) ) :
            $templates = locate_template( array( "paged.php", $templates ), false );
        elseif( empty( $templates ) ) :
            $templates = locate_template( "paged.php", false );
        else :
            $new_template = locate_template( array( "paged.php" ) );
            if( !empty( $new_template ) ) array_unshift( $templates, $new_template );
        endif;
    endif;
    return $templates;
}
add_filter( 'frontpage_template', 'wpa56889_template_filter' );

Notez que l'entrée de codage relative à la hiérarchie de filtres est incorrecte, sous la forme front_page_template, mais que la fonction qui applique ce filtre semble supprimer le trait de soulignement de la variable avant de l'appeler, rendant juste frontpage_template.

1
Milo