web-dev-qa-db-fra.com

Personnalisé/page/2/template (différent de index.php)

J'essaie de créer un modèle de page 2 personnalisé différent du fichier index.php principal. Par exemple, la page d'index principale afficherait les dernières nouvelles + de nombreuses fonctionnalités, comme un magazine. Lorsque les lecteurs cliquent pour lire à la page 2, 3, 4, etc. des articles de presse, ils sont redirigés vers une page d’actualité plus régulière. Un peu comme quelque chose sur theverge.com (en bas, cliquez sur "page suivante" et voyez ce que je veux dire).

Quelqu'un a une idée sur la façon de faire cela? Je sais qu'il est possible de créer des pages d'archivage pour les catégories et les balises, mais je ne sais pas comment le faire pour le fichier index.php.

Merci!

1
Bill

J'utiliserais la condition is_paged() à l'intérieur de index.php pour charger deux modèles distincts contenant vos mises en page. Quelque chose comme ça:

if ( is_paged() ):
   get_template_part( 'content', 'first-page' );
else:
   get_template_part( 'content', 'paged' );
endif;

En supposant que vous ayez deux modèles, content-first-page.php et content-paged.php.

Edit: Si vous souhaitez simplement un autre modèle pour une partie de votre page d'index, essayez ceci:

if ( !is_paged() ):
   get_template_part( 'content', 'middle' );    
endif;

Placez-le où vous voulez que le modèle supplémentaire soit chargé.

3
Joseph Leedy

La réponse de @ Joseph est probablement ce que vous recherchez. Mais si la première page et les pages suivantes doivent être suffisamment différentes pour nécessiter un modèle complet différent, vous pouvez vous connecter au filtre template_include.

add_action('template_include','wpse57122_change_on_p2');
function wpse57122_change_on_p2( $template ){
    if( is_front_page() && is_paged() ){
        $template = locate_template(array('archive.php','index.php'));
    }
    return $template;
}

Cela modifie le modèle par défaut utilisé pour les pages 2 et supérieures de la 'page de couverture' (voir is_front_page et is_paged() ). Le locate_template recherche le thème (enfant et parent) pour les modèles donnés - dans l'ordre donné. Dans cet exemple, il utilisera archive.php pour les pages 2 et supérieures. Si ce modèle n'existe pas, il utilisera plutôt index.php.

3
Stephen Harris