get_comment_count( int $post_id ): int[]
Retrieves the total comment counts for the whole site or a single post.
Parameters
-
$post_id
int 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.
approved
intThe number of approved comments.awaiting_moderation
intThe number of comments awaiting moderation (a.k.a. pending).spam
intThe number of spam comments.trash
intThe number of trashed comments.post-trashed
intThe number of comments for posts that are in the trash.total_comments
intThe total number of non-trashed comments, including spam.all
intThe total number of pending or approved comments.
Source
File: wp-includes/comment.php
.
View all references
function get_comment_count( $post_id = 0 ) {
$post_id = (int) $post_id;
$comment_count = array(
'approved' => 0,
'awaiting_moderation' => 0,
'spam' => 0,
'trash' => 0,
'post-trashed' => 0,
'total_comments' => 0,
'all' => 0,
);
$args = array(
'count' => true,
'update_comment_meta_cache' => false,
);
if ( $post_id > 0 ) {
$args['post_id'] = $post_id;
}
$mapping = array(
'approved' => 'approve',
'awaiting_moderation' => 'hold',
'spam' => 'spam',
'trash' => 'trash',
'post-trashed' => 'post-trashed',
);
$comment_count = array();
foreach ( $mapping as $key => $value ) {
$comment_count[ $key ] = get_comments( array_merge( $args, array( 'status' => $value ) ) );
}
$comment_count['all'] = $comment_count['approved'] + $comment_count['awaiting_moderation'];
$comment_count['total_comments'] = $comment_count['all'] + $comment_count['spam'];
return array_map( 'intval', $comment_count );
}
Changelog
Version | Description |
---|---|
2.0.0 | Introduced. |