这里有一个快速而肮脏的方法。。。
在函数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;
?>