Intereting Posts
Отображение условий, основанных на сообщениях цикла? wp-cli Включение режима поддержки Как добавить локальных пользователей в WordPress без пароля по электронной почте? Изменить Slug пользовательского типа сообщения Я хочу получить номер версии плагина Динамически Страница входа в WordPress trashed wp_insert_term – проблема родителя и ребенка Можно выполнить поиск по имени автора с помощью функции поиска по умолчанию WordPress? Multisite – как удалить корневой сайт '/'? Атрибуты изменения продукта не отображаются так, как должно быть в корзине – woocommerce Я хочу добавить папку темы репозитория Изменить порядок пользовательских столбцов для панелей редактирования Как создать групповые блоги на основе созданных пользователем групп Условные: что не так с моими утверждениями if / else? Каков наилучший способ использования Featured Image для гибкого веб-дизайна?

Рассчитывать родительские комментарии и ответы отдельно?

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

Кто-нибудь знает, как добиться этого?

Всего 10 комментариев разбиты на 3 родительских комментария и 7 ответов. Как я могу отобразить это в верхней части формы комментария?

Пожалуйста, спасибо!

Solutions Collecting From Web of "Рассчитывать родительские комментарии и ответы отдельно?"

вот быстрый и грязный метод …

в функциях php мы создаем функцию обратного вызова для wp_list_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_list_comments (), мы добавляем другой с обратным вызовом к нашей функции count, а затем сразу же после того, как мы сможем повторить наш счет. то у нас есть обычный wp_list_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 для вычитания числа родителей из числа детей.

В functions.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; ?>