计算循环的帖子数(WP_QUERY)?

时间:2014-03-29 作者:user49575

我尝试了这种方式来显示NO of post:

<?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(); ?> 
如果post编号=0,我需要显示:-

<?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(); ?> 
但是我没有得到任何东西,而不是全部的帖子。

有什么建议可以解决这个问题吗?

2 个回复
SO网友:Nicolai Grossherr

一些附加信息,无需再次统计帖子,因为WP_Query 已经为你做过了。为了澄清这一点,请参阅WP_Query 如»属性«部分所示:

$post_count
显示的帖子数量。

$found_posts
找到的与当前查询参数匹配的帖子总数

这意味着

  1. $post_count 不会告诉你帖子总数。它很可能会为您提供您使用post_per_page 参数,除非您的帖子少于此值,或者您位于最后一页,并且只剩下更少的帖子
  2. $found_posts 可用于获取与特定查询相关的帖子总数。因此,没有必要再次计算它们
在您的情况下,您可以将总数计入$count 变量如下:

$count = $news_2->found_posts;
除此之外,@helgatheviking是对的,从你的问题中可以看出,你不需要额外的条件,但可以使用have_posts() 方法,在您已经拥有的条件中,就像她建议的那样。

SO网友:helgatheviking

如果找不到帖子,则无需对帖子进行计数即可显示不同的内容。您可以使用else 您的if($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(); ?> 
但是如果您确实需要统计返回的帖子数量,您可以使用

$count = count( $news_2->posts );

结束

相关推荐

Count post + add number =

我在计算名为“项目”的自定义帖子类型的帖子时遇到问题,我想在计数中添加一个数字。我们做了一些无法在我们的投资组合中显示的东西,但只想添加为数字。基本上是这样的:共有22个已发布项目(自定义帖子类型称为“项目”)+11个其他项目(无帖子)=回显33个项目。编辑:我用这个来计算wordpress的数量:<?php $count_posts = wp_count_posts(\'projects\'); $published_posts =