get_comment_count( int $post_id )
Retrieves the total comment counts for the whole site or a single post.
Parameters
- $post_id
-
(Optional) Restrict the comment counts to the given post. Default 0, which indicates that comment counts for the whole site will be retrieved.
Return
(int[]) The number of comments keyed by their status.<br>
- 'approved'
(int) The number of approved comments.<br> - 'awaiting_moderation'
(int) The number of comments awaiting moderation (a.k.a. pending).<br> - 'spam'
(int) The number of spam comments.<br> - 'trash'
(int) The number of trashed comments.<br> - 'post-trashed'
(int) The number of comments for posts that are in the trash.<br> - 'total_comments'
(int) The total number of non-trashed comments, including spam.<br> - 'all'
(int) The total number of pending or approved comments.<br>
Source
File: wp-includes/comment.php
function get_comment_count( $post_id = 0 ) {
global $wpdb;
$post_id = (int) $post_id;
$where = '';
if ( $post_id > 0 ) {
$where = $wpdb->prepare("WHERE comment_post_ID = %d", $post_id);
}
$totals = (array) $wpdb->get_results("
SELECT comment_approved, COUNT( * ) AS total
FROM {$wpdb->comments}
{$where}
GROUP BY comment_approved
", ARRAY_A);
$comment_count = array(
'approved' => 0,
'awaiting_moderation' => 0,
'spam' => 0,
'trash' => 0,
'post-trashed' => 0,
'total_comments' => 0,
'all' => 0,
);
foreach ( $totals as $row ) {
switch ( $row['comment_approved'] ) {
case 'trash':
$comment_count['trash'] = $row['total'];
break;
case 'post-trashed':
$comment_count['post-trashed'] = $row['total'];
break;
case 'spam':
$comment_count['spam'] = $row['total'];
$comment_count['total_comments'] += $row['total'];
break;
case '1':
$comment_count['approved'] = $row['total'];
$comment_count['total_comments'] += $row['total'];
$comment_count['all'] += $row['total'];
break;
case '0':
$comment_count['awaiting_moderation'] = $row['total'];
$comment_count['total_comments'] += $row['total'];
$comment_count['all'] += $row['total'];
break;
default:
break;
}
}
return $comment_count;
}
Changelog
Version | Description |
---|---|
2.0.0 | Introduced. |