Pour une raison quelconque, les "posts précédents" et les "prochains posts" sur la page d'accueil ne chargent pas les posts précédents, mais plutôt les mêmes posts que sur la page principale.
Pourquoi donc? Je ne sais même pas par où commencer le débogage ...
J'ai les extraits de code suivants qui pourraient être liés dans le fichier loop.php
:
if ( is_home() ) {
query_posts($query_string . '&cat=-13,');
}
while ( have_posts() ) : the_post(); ?>
// This following line added to exclude posts that have custom variable ad=true:
<?php if ( get_post_meta($post->ID, 'ad', true) == '') { ?>
... voici les messages affichant ...
<?php } // Ending the exlusion of 'ad' ?>
<?php endwhile; // End the loop. Whew. ?>
<?php if ( $wp_query->max_num_pages > 1 ) : ?>
<div id="nav-below" class="navigation">
<div class="nav-previous"><?php next_posts_link( __( '<span class="meta-nav">←</span> Предишни статии', 'twentyten' ) ); ?></div>
<div class="nav-next"><?php previous_posts_link( __( 'Следващи статии <span class="meta-nav">→</span>', 'twentyten' ) ); ?></div>
</div><!-- #nav-below -->
<?php endif; ?>
Où pourrait être le problème, sinon dans ces extraits? Comment pourrais-je le déboguer?
Utilisez-vous 'posts_per_page'
et 'paged'
dans la chaîne de requête? sinon essayez d'ajouter
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$query .= 'posts_per_page=5&paged='.$paged
Le numéro 5 sera remplacé par le nombre de messages après lesquels vous souhaitez que le lien de la page suivante (pagination) apparaisse.
Supprimez également la déclaration if sur le lien de la page suivante.
if ( $wp_query->max_num_pages > 1 )
C'est parce que votre page d'accueil utilise son propre appel query_posts et que cet appel query_posts ramène toutes les publications d'une catégorie spécifique. Comme il s’agit de la seule restriction en vigueur, les mêmes messages seront toujours récupérés et affichés.