Compter les messages d'une boucle (WP_Query)?
-
-
Hé,tu veux reveniret peser sur l'une des 2 réponses quit'ont étéfournies?Hey, want to come back and weigh in on either of the 2 answers that have been provided to you?
- 2
- 2014-04-02
- helgatheviking
-
Si * l'une * des réponses vous a été utile,envisagez de l'accepter.Voir »[Que dois-jefaire quand quelqu'un répond àma question?] (Http://wordpress.stackexchange.com/help/someone-answers)«et/ou »[Pourquoi voterest-ilimportant?] (Http://wordpress.stackexchange.com/help/why-vote) «,plus d'informations sur lemodèle de développement WordPress sont disponibles à l '[aide].If *any* of the answer was helpful to you, then consider accepting it. See »[What should I do when someone answers my question?](http://wordpress.stackexchange.com/help/someone-answers)« and/or »[Why is voting important?](http://wordpress.stackexchange.com/help/why-vote)«, more information about the WordPress Development model is available at the [help].
- 0
- 2015-04-30
- Nicolai
-
2 réponses
- votes
-
- 2014-03-29
Quelquesinformations supplémentaires,inutile de compter ànouveau lesmessages,car
WP_Query
l'a déjàfait c'estpour vous. Pour clarifier cela,quelquesinformations de la référence de classe deWP_Query
commetrouvé dans la section »Propriétés«:$post_count
Lenombre demessages affichés.$found_posts
Lenombretotal demessagestrouvés correspondant auxparamètres de requête actuelsCe que cela signifieest
-
$post_count
ne vous donnerapas lenombretotal depublications. Cela vous donneraprobablement lenombre demessages que vous avez définis avec leparamètrepost_per_page
,àmoins que vousn'ayezmoins demessages que cela ou que vous soyez sur la dernièrepageet qu'ilne reste quemoins demessages. -
$found_posts
peut être utilisépour obtenir lenombretotal demessages liés à une requête spécifique. Iln'est doncpasnécessaire de les compter ànouveau.
Dans votre cas,vouspouvez obtenir lenombretotal dans votre variable
$count
comme ceci:$count = $news_2->found_posts;
Enplus de cela,@helgatheviking a raison de dire que,d'après ce que vous avezmontré dans votre question,vousn'avezpasbesoin d'une condition supplémentaire,maispouvez simplement utiliser laméthode
have_posts()
,dans le conditionnel que vous avez déjà,pour cela,commeelle l'a suggéré.Some additional information, no need to count the posts again, because
WP_Query
already did that for you. To clarify this, some information from the Class Reference ofWP_Query
as found in the »Properties« section:$post_count
The number of posts being displayed.$found_posts
The total number of posts found matching the current query parametersWhat this means is
$post_count
won't give you the total post count. It will most likely give you the number of posts you've defined with thepost_per_page
parameter, unless you've fewer posts than that or you're on the last page and there are only fewer posts left.$found_posts
can be used to get the total number of post related to a specific query. So there is no need to count them again.
In your case you can get the total count into your
$count
variable like this:$count = $news_2->found_posts;
Besides of that @helgatheviking is right that, from what you've shown in your question, you don't need a extra conditional, but can just use the
have_posts()
method, in the conditional you already have, for that, like she suggested.-
+1pour lapropriétéfound_posts.Vous apprenez quelque chose denouveau chaquejour!:)+1 for the found_posts property. You learn something new every day! :)
- 4
- 2014-03-30
- helgatheviking
-
- 2014-03-29
Vousn'avezpasbesoin de compter lesmessagespour afficher quelque chose de différent si aucunmessagen'esttrouvé.Vouspouvez simplement utiliser lapartie
else
de votre vérificationif($news_2->have_posts())
.$news_2 = new WP_Query( array ('post_type'=> 'jobs','posts_per_page'=> '10' , 'meta_key' => 'status_for_jobs','meta_value' => '1') ); if ( $news_2->have_posts() ) { while ( $news_2->have_posts() ) { $news_2->the_post(); ?> <li><h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3></li> <?php } } else { ?> <li><h3>No Post</h3></li> <?php } ?> <?php wp_reset_query(); ?>
Mais si vous avez vraimentbesoin de compter lenombre demessages renvoyés,vouspouvez utiliser
$count = count( $news_2->posts );
You don't need to count the posts to show something different if no posts are found. You can just use the
else
part of yourif($news_2->have_posts())
check.$news_2 = new WP_Query( array ('post_type'=> 'jobs','posts_per_page'=> '10' , 'meta_key' => 'status_for_jobs','meta_value' => '1') ); if ( $news_2->have_posts() ) { while ( $news_2->have_posts() ) { $news_2->the_post(); ?> <li><h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3></li> <?php } } else { ?> <li><h3>No Post</h3></li> <?php } ?> <?php wp_reset_query(); ?>
But if you truly need to count the number of posts returned, you can use
$count = count( $news_2->posts );
J'aiessayé de cettefaçon d'afficher NON dumessage:
si le NON depost=0,j'aibesoin d'afficher ceci: -
Mais au lieu dutotal desmessages,je n'obtiens rien.
Des suggestionspour résoudre ceproblème?