Obtenir le nombre de messages de la boucle actuelle lors de l'utilisation de plusieurs requêtes sur une page
4 réponses
- votes
-
- 2011-10-16
$wp_query
contient laboucleprincipale de lapageet ne doitpas être utilisépour créerplusieursboucles.Si vous utilisez unnouvel objet
WP_Query
,votre variable qui le contient aura le décompte suivant:$my_query = new WP_Query(); // stuff $count = $my_query->post_count;
Si vous utilisez
get_posts()
alors l'objetWP_Query
n'estpas accessibleet vous devez simplement compter l'ensemble retourné:$posts = get_posts(); $count = count($posts);
$wp_query
hold main loop of page and should not be used to create multiple loops.If you are using new
WP_Query
object then your variable that holds it will have according count:$my_query = new WP_Query(); // stuff $count = $my_query->post_count;
If you are using
get_posts()
thenWP_Query
object is not accessible and you should just count returned set:$posts = get_posts(); $count = count($posts);
-
Remarque: Si vous êtes dans laboucleprincipale,vouspouvez accéder à `WP_Query` via`global $ wp_query`Note: If you are in the main loop, you can access `WP_Query` through `global $wp_query`
- 0
- 2019-10-22
- mrmadhat
-
- 2011-10-16
Je crois que lepost_countest stocké dans leglobal,donc avant labouclepersonnalisée,vous devez le définir sur
0
,car vouspouvez l'utiliseren dehors de laboucle,mais cela dépend de lafaçon dont vous structurez votreplusieurs requêtes,vouspouvezpeut-être les ajouter à votremessage?Il y a une autrefaçon quej'utilise dans laboucle qui compte lesmessagesen utilisant
current_post + 1
,parexemple.<?php $my_query = new WP_Query();?> <?php if ($my_query->have_posts()) :while ($my_query->have_posts()) : $my_query->the_post(); $count_posts = $my_query->current_post + 1; //counts posts in loop endwhile;?>
I believe the post_count is stored in the global, so before the custom loop you should set it to
0
, since you can use it outside the loop, but this depends on how you are structuring your multiple query's, maybe you can add them to your post?There is another way that I use within the loop that counts posts using
current_post + 1
, for example.<?php $my_query = new WP_Query();?> <?php if ($my_query->have_posts()) :while ($my_query->have_posts()) : $my_query->the_post(); $count_posts = $my_query->current_post + 1; //counts posts in loop endwhile;?>
-
- 2019-05-21
Une solution alternative utilisant WP_Query serait:
<?php $args = array( 'post_type' => 'post' ); $the_query = new WP_Query( $args ); $totalpost = $the_query->found_posts; ?>
An alternative solution using WP_Query would be:
<?php $args = array( 'post_type' => 'post' ); $the_query = new WP_Query( $args ); $totalpost = $the_query->found_posts; ?>
-
- 2019-05-08
Unmoyen simple de compter lenombretotal demessages,y compris lapagination
<?php global $wp_query echo $wp_query->found_posts; ?>
Simple way to count total post including pagignation
<?php global $wp_query echo $wp_query->found_posts; ?>
J'essaye d'obtenir un décompte desmessages actuels à l'intérieur d'uneboucle.J'utiliseplusieursboucles sur unepage demonthème.Jusqu'àprésent,j'ai:
Mais quandj'imprime $my_post_count,il renvoie lenombre detous lesmessages surmon site WP.Celapourrait-il avoir quelque chose à voir avec l'utilisation deplusieurs requêtes sur unepage?J'aiessayé d'utiliser wp_reset_query après chaquebouclepourm'assurer queje nejetaispas les choses de cettefaçon.Qu'est-ce queje faismal?