# wp_count_comments()

URL: https://chugunov.pro/api-wordpress/functions/wp_count_comments/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 2.5.0.

## Сигнатура

```php
wp_count_comments( int $post_id ): stdClass
```

## Описание

Статистика комментариев кэшируется, а затем извлекается, если она уже есть в кэше.
См. alsoget_comment_count(): обрабатывает получение актуального количества комментариев.

## Параметры

- `$post_id` `int` — необязательный. Ограничивает подсчёт комментариев указанной записью. Значение по умолчанию 0, что означает получение количества комментариев для всего сайта.

## Возвращаемое значение

`stdClass` — approved intКоличество одобренных комментариев. moderated intКоличество комментариев, ожидающих модерации (то есть на рассмотрении). spam intКоличество спам-комментариев. trash intКоличество комментариев в корзине. post-trashed intКоличество комментариев для записей, находящихся в корзине. total_comments intОбщее количество комментариев не в корзине, включая спам. all intОбщее количество комментариев на рассмотрении или одобренных.

## Исходный код

Файл: `wp-includes/comment.php:1460`

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

## История изменений

- 2.5.0 — Introduced.

## Связанные

Использует: [`wp_cache_set`](https://chugunov.pro/api-wordpress/functions/wp_cache_set/), [`get_comment_count`](https://chugunov.pro/api-wordpress/functions/get_comment_count/), [`wp_cache_get`](https://chugunov.pro/api-wordpress/functions/wp_cache_get/), [`apply_filters`](https://chugunov.pro/api-wordpress/functions/apply_filters/).
Используется в: [`wp_dashboard_right_now`](https://chugunov.pro/api-wordpress/functions/wp_dashboard_right_now/), [`_wp_ajax_delete_comment_response`](https://chugunov.pro/api-wordpress/functions/_wp_ajax_delete_comment_response/), [`wp_ajax_replyto_comment`](https://chugunov.pro/api-wordpress/functions/wp_ajax_replyto_comment/), `WP_Comments_List_Table::get_views`, [`wp_admin_bar_comments_menu`](https://chugunov.pro/api-wordpress/functions/wp_admin_bar_comments_menu/), `wp_xmlrpc_server::wp_getCommentCount`.

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/wp_count_comments/
