web-dev-qa-db-fra.com

Problème de pagination après WP_Query avec filtrage des balises

J'ai un problème avec un WP_Query personnalisé. Je veux une page avec tous les messages avec une balise spécifique. C'est le code que j'utilise:

<?php 
//save old query
$temp = $wp_query; 
//clear $wp_query; 
$wp_query= null; 
 ?>      
<?php 
// The Query
$wp_query = new WP_Query();
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array( 'tag' => 'concurs', 'paged' => $paged );
$wp_query->query($args);
?>
<?php 
// The Loop
while ( $wp_query->have_posts() ) :
    $wp_query->the_post();
 ?>  
[some code that displays the title, excerpt, meta-info (author, category, date) and thumbnail] 
      <?php endwhile; ?>
<?php posts_nav_link(); ?>              
<?php 
//clear again
$wp_query = null; 
//reset
$wp_query = $temp;  
 ?> 

Le problème est que lorsque je passe à la page 2 ou 3, je reçois les mêmes 10 premiers messages. Qu'est ce que je fais mal?

2
George Grigorita

Enfin, j'ai trouvé le bon code pour ce problème:

<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$wp_query = new WP_Query();
$wp_query->query('tag=concurs&posts_per_page='.get_option('posts_per_page').'&paged=' . $paged);
?>
<?php if ($wp_query->have_posts()) : ?>
    <?php while ( $wp_query->have_posts() ) : $wp_query->the_post(); ?>  
[code for title, author, category, meta-info etc] 
<?php endwhile; ?>
 <div class="next-prev"><?php posts_nav_link( ' ', '<img src="' . get_bloginfo('stylesheet_directory') . '/img/pagina-precedenta.png" align="left" />', '<img src="' . get_bloginfo('stylesheet_directory') . '/img/pagina-urmatoare.png" align="right" />'); ?></div>  
<?php endif; ?>         
1
George Grigorita

Votre requête n'a pas de pagination .

Vous devez indiquer à la requête sur quelle page vous souhaitez obtenir les bons résultats. Pour cela, vous pouvez récupérer la variable query_var 'paginée'.

0
Chris_O