Intereting Posts
Как показать все доступные изображения в медиатеке WP при использовании плагина Polylang? Аутентификация сайта WordPress через другую установку WordPress? Боковая панель внизу, но я полностью заменил папку темы обратно на исходный код Подавать apache 404 для отсутствующих активов, а не wp 404 template WP_Rewrites Перемещение / перетаскивание метабокса устраняет содержимое TinyMCE wp_trash_post retrashes уже разгромили комментарии? Woocommerce получает родительскую категорию высшего уровня и делает все подкатегории одинаковыми шаблонами и меню Проблема с загрузкой PDF-файла WordPress unescape text на mysql? Категории запросов и CPT Есть ли режим обслуживания в ядре WordPress? Wp избранные сообщения по определенной категории? Ограничение доступа категорий к определенным пользователям / группам. У автора всегда есть доступ in_category () работает в single.php, но не в page.php? Создание настраиваемых мета-полей на странице параметров плагина

Подсчитайте все комментарии пользовательского типа сообщения

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

Наверное, я могу зацикливаться на всех постах и ​​подсчитывать каждый
комментарии, но я ищу что-то быстрее и меньше
ресурс дорогой

Ценю вашу помощь

Я получил это до сих пор (я думаю, что это плохо, но я могу ошибаться):

/*** ALL COMMENTS COUNT BY POST TYPE ***/ function countCptCommentsTotal() { // FAQ ARGS $faqStatsArgs = array( 'post_type' => 'some_post_type', 'post_status' => 'publish', 'posts_per_page' => -1 ); $faqstats_query = new WP_Query($faqStatsArgs); // THE LOOP $allAnswers = 0; while ($faqstats_query->have_posts()) { $faqstats_query->the_post(); $curfaqid = get_the_ID(); $allAnswers = $allAnswers + countPostComments($curfaqid); } wp_reset_query(); return $allAnswers; } 

Как насчет прямого sql с простым подзапросом, чтобы сначала получить все идентификаторы сообщений вашего пользовательского типа post:

 function get_all_comments_of_post_type($post_type){ global $wpdb; $cc = $wpdb->get_var("SELECT COUNT(comment_ID) FROM $wpdb->comments WHERE comment_post_ID in ( SELECT ID FROM $wpdb->posts WHERE post_type = '$post_type' AND post_status = 'publish') AND comment_approved = '1' "); return $cc; } 

Применение:

 $total_comments = get_all_comments_of_post_type('some_post_type'); 

Просто сделайте простой MySQL Query, который sum строку comment_count . В качестве примера можно привести следующий плагин:

 <?php namespace WPSE; /** * Plugin Name: (#134338) Get total Comment Count * Plugin URl: http://wordpress.stackexchange.com/q/134338 */ defined( 'ABSPATH' ) or exit; function commentCountTotal( $postType = 'post' ) { global $wpdb; return $wpdb->query( $wpdb->prepare( "SELECT sum( comment_count ) FROM ( SELECT comment_count FROM {$wpdb->posts} WHERE post_type = '%s' AND post_status = 'publish' AND comment_count > 0 LIMIT 0 , 999 ) as count", $postType ) ); } 

Затем вы можете просто вызвать его, чтобы отобразить общую сумму этого типа сообщения.

 echo \WSPE\commentCountTotal( 'your-post-type' );