C'est le code:
<?php get_template_part( 'pagination', 'bbp_replies' ); ?>
<?php query_posts('gdsr_sort=thumbs&post_type=bbp_reply&posts_per_page=2'); ?>
<?php while ( have_posts() ) : the_post(); ?>
<h2><?php the_title(); ?></h2>
<?php the_content(); ?>
<?php endwhile; ?>
<?php wp_reset_query(); ?>
<?php while ( bbp_replies() ) : bbp_the_reply(); ?>
<div class="topic-entry">
<div class="topic-author">
<?php bbp_reply_author_link( array( 'type' => 'avatar' ) ); ?>
<?php bbp_reply_author_link( array( 'type' => 'name' ) ); ?>
<?php printf( __( '%1$s', 'bbpress' ), get_the_date() ); ?>
</div>
<div class="topic-content">
<?php bbp_reply_content(); ?>
<span class="like-counter"><?php DisplayVotes(get_the_ID()); ?></span>
</div>
<?php bbp_reply_admin_links(); ?>
</div>
La première boucle query_posts
liste les 2 réponses les plus votées. La seconde boucle bbPress liste toutes les autres réponses dans l’ordre DESC.
Vais-je rencontrer des bugs si j'ai ces deux boucles dans un même modèle de fichier?
Je ne le ferais pas de cette façon, mais cela ne devrait pas être un problème. Lorsque votre fichier de modèle est exécuté, la "boucle principale réelle" contient déjà les publications de cette page. Vous exécutez ensuite query_posts()
pour effectuer une deuxième requête, qui "masque" la boucle "réelle", mais une fois que vous avez terminé, vous exécutez la fonction wp_reset_query()
qui reconstitue la boucle "réelle" en boucle active.
Cela créerait de la confusion et entraînerait des erreurs si vous intégriez les deux boucles, donc si vous exécutiez une autre query_posts()
dans cette boucle principale where
. Ensuite, vous devez utiliser get_posts()
ou un WP_Query
direct pour éviter les erreurs.
Personnellement, je n’appelle jamais query_posts()
moi-même et utilise toujours get_posts()
, car cela ne change aucune variable globale "derrière mon dos".