Wordpress标准循环:带参数的附加帖子数

时间:2018-07-24 10:28:44

标签: wordpress loops

我正在更改“搜索和过滤器Wordpress插件”的模板文件,以显示其他帖子数。

该插件使用标准的Wordpress循环按某些参数查询帖子。帖子数可以使用found_posts进行计数。

现在,我想显示第二个帖子计数,其中要考虑其他参数。 post_status。我必须坚持常规的WP循环,以使来自插件的查询保持完整。

在注释行中这样的内容:

if ( $query->have_posts() ) {

  echo $query->found_posts 'posts found';
  // echo $query->found_posts(array('post_status=>'private') 'private posts found';

  while ($query->have_posts()) {
    $query->the_post();
    the_title();
  }
}

该代码可以正常工作,但注释部分显然不起作用。

是否可以在标准循环中添加另一个带有附加参数的post_count

谢谢

乔治

1 个答案:

答案 0 :(得分:0)

您无法添加这样的echo $query->found_posts(array('post_status=>'private'),但在循环之前,只需使用以下代码按status来统计帖子。在您的情况下,您希望按不公开状态来统计帖子,因此请添加以下代码。

$args = array('post_type' => 'your_post_type_name','post_status' => array('publish', 'pending', 'draft', 'future', 'private', 'inherit', 'trash')    
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) {

  echo $query->found_posts 'posts found';

  // echo $query->found_posts(array('post_status=>'private') 'private posts found';
  $count_posts = wp_count_posts('post');
  $private_posts = $count_posts->private;
  echo $private_posts. 'private posts found';
  while ($query->have_posts()) {
    $query->the_post();
    the_title();
  }
}

类似地,如果您想显示发布或草稿帖子的数量,则可以在下面的代码中添加。

$publish_posts = $count_posts->publish;
$draft_posts = $count_posts->draft;

您可以通过状态很好来计数其他任何帖子。