Как получить количество ответов отдельного комментария в WordPress

Я использую торгуемые комментарии, поэтому каждый комментарий получает несколько ответов. Мне нужно получить количество ответов каждого отдельного комментария. Мне не нужно общее количество ответов на все комментарии.

Я пытался использовать этот код:

$comment_id = get_comment_ID();

$childrenCount = get_comment_meta( $comment_id, "childrenCount" );

$childrenCountNumber = count($childrenCount);

echo $childrenCountNumber

И наоборот, который показывает общее количество ответов, а не то, что я ищу. Этот код показывает все ответы на все комментарии.

Код в functions.php

function replies_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;
}

Затем откройте страницу шаблона:

$parents_count = replies_counter($post->ID);
$children_count = $post->comment_count - $parents_count;

echo $children_count;

Это все о получении общего количества ответов на все комментарии. Но мне нужно количество ответов каждого комментария в отдельности.

Будет хорошо, если кто-нибудь поможет мне.

0

Решение

почему бы вам не написать такую ​​пользовательскую функцию, чтобы получать подкомменты для каждого отдельного комментария по идентификатору, как это?

function subreplies_counter($id){
global $wpdb;
$query = "SELECT COUNT(comment_ID) AS count FROM $wpdb->comments
WHERE `comment_approved` = 1 AND `comment_parent` = $id";
$data = $wpdb->get_row($query);
return $data->count;
}
0

Другие решения

Я всегда предпочитаю использовать основную функцию WordPress, если есть возможность делать то, что я хочу.

Вы можете легко достичь этого, используя get_comments. С countаргумент установлен в true, Таким образом, он будет получать только количество комментариев.

$args = array(
'post_id' => $post->ID, //main post id
'parent' => get_comment_ID(), //the comment id
'count' => true, //just count
);
$comments = get_comments($args); //number of comments;
1

По вопросам рекламы [email protected]