Die Beiträge einer Schleife zählen (WP_Query)?


10

Ich habe auf diese Weise versucht, NO of post anzuzeigen:

<?php 
 $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();

  $count = $news_2->post_count;

  ?>

    <li><h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3></li>



    <?php } } ?> <?php wp_reset_query(); ?> 

Wenn das NEIN von post = 0 ist, muss ich Folgendes anzeigen: -

<?php 
 $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();

  $count = $news_2->post_count;

  if ($count  == '0') {

  ?>
  <li><h3><a href="javascript:void(0)">No Post</a></h3></li>

  <?php
  } else {
  ?> 
    <li><h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3></li>

<?php  }  ?>

    <?php } } ?> <?php wp_reset_query(); ?> 

Aber statt der Gesamtzahl der Beiträge bekomme ich nichts.

Irgendwelche Vorschläge, um dies zu beheben?


2
Hey, möchtest du zurückkommen und eine der beiden Antworten abwägen, die dir gegeben wurden?
Helgatheviking

Wenn eine der Antworten für Sie hilfreich war, sollten Sie sie akzeptieren. Siehe » Was soll ich tun, wenn jemand meine Frage beantwortet? «Und / oder» Warum ist Abstimmung wichtig? «Weitere Informationen zum WordPress-Entwicklungsmodell finden Sie in der Hilfe .
Nicolai

Antworten:


23

Einige zusätzliche Informationen, die Beiträge müssen nicht erneut gezählt werden, da dies WP_Querybereits für Sie erledigt wurde. Um dies zu verdeutlichen, einige Informationen aus der Klassenreferenz von WP_Querywie im Abschnitt »Eigenschaften« zu finden:

$ post_count
Die Anzahl der angezeigten Beiträge.

$ found_posts
Die Gesamtzahl der gefundenen Beiträge, die den aktuellen Abfrageparametern entsprechen

Was dies bedeutet ist

  1. $post_countgibt Ihnen nicht die Gesamtzahl der Beiträge. Es gibt Ihnen höchstwahrscheinlich die Anzahl der Beiträge, die Sie mit dem post_per_pageParameter definiert haben , es sei denn, Sie haben weniger Beiträge oder Sie befinden sich auf der letzten Seite und es sind nur noch weniger Beiträge übrig.
  2. $found_postskann verwendet werden, um die Gesamtzahl der Beiträge zu einer bestimmten Abfrage abzurufen. Sie müssen also nicht erneut gezählt werden.

In Ihrem Fall können Sie die Gesamtzahl wie folgt in Ihre $countVariable eingeben:

$count = $news_2->found_posts;

Abgesehen davon hat @helgatheviking Recht, dass Sie nach dem, was Sie in Ihrer Frage gezeigt haben, keine zusätzliche Bedingung benötigen, sondern nur die have_posts()Methode in der Bedingung verwenden können, die Sie bereits haben, wie sie vorgeschlagen hat.


4
+1 für die Eigenschaft found_posts. Sie lernen jeden Tag etwas Neues! :)
Helgatheviking

4

Sie müssen die Beiträge nicht zählen, um etwas anderes anzuzeigen, wenn keine Beiträge gefunden werden. Sie können einfach den elseTeil Ihres if($news_2->have_posts())Schecks verwenden.

$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(); ?> 

Wenn Sie jedoch wirklich die Anzahl der zurückgegebenen Beiträge zählen müssen, können Sie diese verwenden

$count = count( $news_2->posts );
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.