WordPress at a glance

wp_count_comments() WP 1.0

Retrieve total comments for blog or single post.

The comment stats are cached and then retrieved, if they already exist in the cache.

Works based on: get_comment_count()
Hooks from the function

stdClass. The number of comments keyed by their status.


wp_count_comments( $post_id );
Restrict the comment counts to the given post.
Default: 0, which indicates that comment counts for the whole site will be retrieved


  • See: get_comment_count() Which handles fetching the live comment counts.


Since 2.5.0 Introduced.

Code of wp_count_comments() WP 5.7.2

function wp_count_comments( $post_id = 0 ) {
	$post_id = (int) $post_id;

	 * Filters the comments count for a given post or the whole site.
	 * @since 2.7.0
	 * @param array|stdClass $count   An empty array or an object containing comment counts.
	 * @param int            $post_id The post ID. Can be 0 to represent the whole site.
	$filtered = apply_filters( 'wp_count_comments', array(), $post_id );
	if ( ! empty( $filtered ) ) {
		return $filtered;

	$count = wp_cache_get( "comments-{$post_id}", 'counts' );
	if ( false !== $count ) {
		return $count;

	$stats              = get_comment_count( $post_id );
	$stats['moderated'] = $stats['awaiting_moderation'];
	unset( $stats['awaiting_moderation'] );

	$stats_object = (object) $stats;
	wp_cache_set( "comments-{$post_id}", $stats_object, 'counts' );

	return $stats_object;

From tag: counts (counting of any)

More from category: Comments

No comments
    Log In