web-dev-qa-db-fra.com

Wordpress charge la page d'index au lieu de archive.php

J'ai

index.php
archive.php
...

Quand je vais à domain.com, il charge index.php, ce qui est attendu.

Mais, quand je vais www.domain.com/page/2/, il charge les publications correctes (comme dans les publications de la deuxième page), mais utilise dans le modèle index.php . Je veux charger le archive.php template . Comment est-ce réalisable?

1
21zna9

archive.php n'est pas utilisé pour les pages suivantes de sous-ensembles de contenu non liés à la recherche, non taxonomiques, ....

Je pense que vous cherchez peut-être paged.php (mais cela sera aussi utilisé pour la première page).

Vous pouvez également ajouter une logique à index.php pour appeler un autre modèle dont le numéro de page est supérieur à un.

Correction à la relecture http://codex.wordpress.org/Template_Hierarchy#Visual_Overviewpages.php n'est pas la solution. Les publications paginées (c.-à-d. Non uniques) utilisent home.php sinon index.php uniquement.

Vous devrez donc définir votre propre logique (probablement home.php) pour utiliser index.php ou un modèle personnalisé pour les publications.

(Cette réponse montre la logique WP permettant de choisir le modèle à utiliser.)

1
Richard

Voici comment procéder: ce n'est pas une fonctionnalité native de WP.

En gros, vérifiez si $ paged est défini, ce que vous pouvez faire en appelant is_paged () dans une condition.

<?php if ( ! is_paged() ) : 
// code for home page 
else: 
// code for archive page
endif; 
?> 

Utiliser des modèles peut rendre ce fichier index.php toujours soigné/soigné.

Vous devrez cependant vous assurer que vous le faites bien:

<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; ?> 

Avant la requête home ou la requête d'archive.

0
21zna9