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
- get_comment_count(): Which handles fetching the live comment counts.
Parameters
$post_id
intoptional- Restrict the comment counts to the given post. Default 0, which indicates that comment counts for the whole site will be retrieved.
Source
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
- apply_filters( ‘wp_count_comments’,
array|stdClass $count ,int $post_id ) Filters the comments count for a given post or the whole site.
Changelog
Version | Description |
---|---|
2.5.0 | Introduced. |
Retrieve comment count for a post
Default usage
Retrieve comment count for a site.