获取每个帖子的评论计数不起作用

时间:2013-07-27 作者:Johan

我有这个功能:

<?php $popular = new WP_Query(\'orderby=comment_count&posts_per_page=5\'); ?>
    <?php while ($popular->have_posts()) : $popular->the_post(); ?> 
    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> </li>
<?php endwhile; ?>
我添加的位置$popular->wp_comment_count, 但它根本不起作用。我该怎么做?我想看看每个帖子的评论数。。。

3 个回复
最合适的回答,由SO网友:Nathan Powell 整理而成

尝试以下操作:

<?php $popular = new WP_Query(\'orderby=comment_count&posts_per_page=5\'); ?>
<?php while ($popular->have_posts()) : $popular->the_post(); ?>
    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> has <?php comments_number( \'no responses\', \'one response\', \'% responses\' ); ?>.</li>
<?php endwhile; ?>
codex.

SO网友:s_ha_dum

没有wp_comment_count 在a中WP_Query 对象,无论是在代码中的“顶级”级别--$popular->wp_comment_count-- 或者在单个post对象中,这是您实际想要检查的内容。

有一个comment_count 在post对象中,这就是您想要的--$post->comment_count.

您的代码应该如下所示(已清理并格式化为可读的内容):

while ($popular->have_posts()) : 
  $popular->the_post(); ?> 
  <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> </li><?php 
  echo $post->comment_count; // here is your count
endwhile;
请注意,您正在检查$post 用于注释计数。$post 是循环中每个项目的全局集$popular->the_post(). 如果试图显示计数,而不是基于注释计数执行其他操作,则可能应该使用comments_number 正如NathanPowell的回答

SO网友:Shiv Singh

用我的方式

<?php
$commentscount = get_comments_number();
if($commentscount == 1): $commenttext = \'comment\'; endif;
if($commentscount > 1 || $commentscount == 0): $commenttext = \'comments\'; endif;
echo $commentscount.\' \'.$commenttext;
?>
它在所有版本中工作。

结束