是否将家长评论和回复分开计算?

时间:2011-05-05 作者:Leanne

我正在尝试找到一个函数、插件和查询,它可以将父评论计数和回复计数分开。

有人知道如何做到这一点吗?

总共10条评论分为3条家长评论和7条回复。如何在注释表单的顶部显示此内容?

请(&P);非常感谢。

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

这里有一个快速而肮脏的方法。。。

在函数php中,我们为wp\\u list\\u comments()创建一个回调函数,该函数将计算我们的注释:

$GLOBALS[\'parent_comments_count\'] = 0;
$GLOBALS[\'child_comments_count\'] = 0;

function count_comments( $comment, $args, $depth ) {
    $GLOBALS[\'comment\'] = $comment;
    if($comment->comment_parent==0):
        $GLOBALS[\'parent_comments_count\']++;
    else:
        $GLOBALS[\'child_comments_count\']++;
    endif;
}
然后,在调用wp\\u list\\u comments()的模板中,我们向count函数添加另一个回调函数,然后可以立即回显计数。然后我们有了常规的wp\\u list\\u comments(),它将实际输出注释:

wp_list_comments( array( \'callback\' => \'count_comments\' ) );
echo "parents: ". $GLOBALS[\'parent_comments_count\'];
echo "children: ". $GLOBALS[\'child_comments_count\'];
wp_list_comments();
强调“脏”,我相信有一种更干净的方法可以做到这一点。

下面是另一个使用附加查询的方法。这将得到数字,而不考虑分页。我们使用comment_count 变量输入$post 从中减去父母的数目,得到孩子的数目。

在函数中。php:

function c_parent_comment_counter($id){
    global $wpdb;
    $query = "SELECT COUNT(comment_post_id) AS count FROM $wpdb->comments WHERE `comment_approved` = 1 AND `comment_post_ID` = $id AND `comment_parent` = 0";
    $parents = $wpdb->get_row($query);
    return $parents->count;
}
在模板中:

<?php
$number_of_parents = c_parent_comment_counter($post->ID);
$number_of_children = $post->comment_count - $number_of_parents;

echo "parents: ".$number_of_parents;
echo "children: ".$number_of_children;

?>

结束

相关推荐

由于自定义Comments.php文件,无法连接评论

嘿,我试着使用wordpress的线程评论功能,但由于自定义主题,所以没有成功。我尝试了wp线程评论插件,它的工作方式很有魅力,但不幸的是,它与FV社区新闻插件有冲突,它在社区新闻区域/小部件上显示了一个回复按钮。所以我试着手动操作。。。没有运气。谁能给我提个建议或者告诉我什么地方我可以得到一些数据来解决这个问题吗。我的wordpress版本是3.0.4cheers当前注释。php<?php // Do not delete these lines if (!empty($_SERV