无法在循环外显示每个帖子的评论计数

时间:2013-05-13 作者:user1627363

如何显示循环外每个帖子的评论量?我已经在函数中尝试过了:

\' . get_comments_number . \' , 但它在屏幕上输出了文本“array”。。。我要怎么做才能让它工作?

在我的single.php 我用它来输出一些列表项(帖子):

<ul class="wow dude">
<?php echo wowPosts(2); ?>
</ul>
在我的职能中。php我使用的是:

function wowPosts($num) {
    global $wpdb;

    $posts = $wpdb->get_results("SELECT comment_count, ID, post_title FROM $wpdb->posts ORDER BY comment_count DESC LIMIT 0 , $num");

    foreach ($posts as $post) {
        setup_postdata($post);
        $id = $post->ID;
        $title = $post->post_title;
        $count = $post->comment_count;
        $comment_count = get_comment_count($post->ID);
        $all_comments = get_comment_count( array ( \'post_id\' => get_the_ID() ) );

        if ($count != 0) {
            $popular .= \'<li>\';
            $popular .= \'<a href="\' . get_permalink($id) . \'" title="\' . $title . \'">\' . $title . \'</a> \'. count( $all_comments ) . \' \';
            $popular .= \'</li>\';
        }
    }
    return $popular;
}
正如您所看到的,我已经编辑了您的第一个代码并在这个函数中实现了,以便我可以在每个列表项(每个帖子)中使用它。。。它仍然显示到处都是4。

1 个回复
最合适的回答,由SO网友:fuxia 整理而成

要仅打印给定帖子ID的评论总数,请使用count 参数:

echo get_comments(
    array (
        // post ID
        \'post_id\' => 149,
        // return just the total number
        \'count\'   => TRUE
    )
);
或者只是使用

// Argument: Post ID
echo get_comment_count( 149 );
要获取当前页面上所有帖子的所有评论总数,可以使用comment_count post对象的属性,并将其汇总:

echo array_sum(
    wp_list_pluck( $GLOBALS[\'wp_query\']->posts, \'comment_count\' )
);

结束

相关推荐

Number of displayed posts

我已经尝试了很多方法来解决这个问题。所以我有一个插件,它在一个小部件中显示分配给用户的项目。它将项目显示为帖子。问题是它只显示5 页面上的项目。我正在发送一个显示帖子的代码:$projects = get_posts(array(\'post_type\' => \'projects\')); 有个人叫我把它改成$projects = get_posts(array(\'post_type\' => \'projects\', \'number posts\' => 10));