Невозможно показать количество комментариев за каждый пост вне цикла

Как я могу показать количество комментариев за сообщение за пределами цикла? Я уже пробовал это в функции:

' . get_comments_number . ' ' . get_comments_number . ' , но это выводило текст «массив» на экране … Что мне нужно сделать, чтобы заставить его работать?

На моем single.php я использовал это для вывода некоторых элементов списка (сообщений):

 <ul class="wow dude"> <?php echo wowPosts(2); ?> </ul> 

И в моих functions.php я использовал это:

 function wowPosts($num) { global $wpdb; $posts = $wpdb->get_results("SELECT comment_count, ID, post_title FROM $wpdb->posts ORDER BY comment_count DESC LIMIT 0 , $num"); foreach ($posts as $post) { setup_postdata($post); $id = $post->ID; $title = $post->post_title; $count = $post->comment_count; $comment_count = get_comment_count($post->ID); $all_comments = get_comment_count( array ( 'post_id' => get_the_ID() ) ); if ($count != 0) { $popular .= '<li>'; $popular .= '<a href="' . get_permalink($id) . '" title="' . $title . '">' . $title . '</a> '. count( $all_comments ) . ' '; $popular .= '</li>'; } } return $popular; } 

Как вы можете видеть, я отредактировал ваш первый код и реализовал в этой функции, чтобы я мог использовать его для каждого элемента списка (за сообщение) … Он по-прежнему показывает 4 везде.

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

 echo get_comments( array ( // post ID 'post_id' => 149, // return just the total number 'count' => TRUE ) ); 

или просто использовать

 // Argument: Post ID echo get_comment_count( 149 ); 

Чтобы получить общее количество всех комментариев по всем сообщениям на текущей странице, вы можете использовать свойство comment_count объектов post и суммировать их:

 echo array_sum( wp_list_pluck( $GLOBALS['wp_query']->posts, 'comment_count' ) );