wordpress / latest / functions / wp_count_comments.html

wp_count_comments( int $post_id ): stdClass

Retrieves the total comment counts for the whole site or a single post.

Description

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

See also

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

stdClass The number of comments keyed by their status.

  • approvedint
    The number of approved comments.
  • moderatedint
    The number of comments awaiting moderation (a.k.a. pending).
  • spamint
    The number of spam comments.
  • trashint
    The number of trashed comments.
  • post-trashedint
    The number of comments for posts that are in the trash.
  • total_commentsint
    The total number of non-trashed comments, including spam.
  • allint
    The total number of pending or approved comments.

Source

File: wp-includes/comment.php. View all references

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;
}

Hooks

Uses

Uses Description

Used By

Used By Description

Changelog

Version Description
2.5.0 Introduced.

© 2003–2022 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/functions/wp_count_comments