wp_count_comments() WP 2.5.0

Отримує дані про кількість коментарів на сайті або окремо для вказаної посади. Дані збираються окремо за типами коментів (всі варіанти поля comment_approved : approved , spam і т.д.).

Якщо потрібно отримати кількість постів (опублікованих, чернеток, на затвердженні тощо), використовуйте wp_count_posts() .

Працює на основі:
get_comment_count()

Хуки з функції

Повертає

stdClass. Об’єкт із значеннями:

stdClass Object
(
	[approved] => 49
	[total_comments] => 49
	[moderated] => 0
	[spam] => 0
	[trash] => 0
	[post-trashed] => 0
)

Використання

wp_count_comments( $post_id );
$post_id
(число)
ID посту, для якого потрібно отримати дані про коментарі.


За замовчуванням: 0

Приклади

0

#1 Отримаємо кількість коментарів для сайту в цілому:

$comments_count = wp_count_comments();

echo "Статистика коментарів сайту: <br>";
echo "На модерації:". $comments_count->moderated . "<br>";
echo "Затверджені:". $comments_count->approved . "<br>";
echo "Помічені як спам: ". $comments_count->spam . "<br>";
echo "Коментів у кошику:". $comments_count->trash . "<br>";
echo "Всього коментарів: " . $comments_count->total_comments . "<br>";

У результаті на екран виведеться така інформація:

Статистика коментарів сайту:
На модерації: 0
Затверджені: 4973
Помічені як спам: 223
Коментів у кошику: 4
Всього коментарів: 4975
0

#2 Отримаємо статистику коментарів для конкретного посту:

$comments_count = wp_count_comments(140);

echo "Коментарі посту: <br>";
echo "На модерації:". $comments_count->moderated . "<br>";
echo "Затверджені:". $comments_count->approved . "<br>";
echo "Помічені як спам: ". $comments_count->spam . "<br>";
echo "Коментів у кошику:". $comments_count->trash . "<br>";
echo "Всього коментарів: " . $comments_count->total_comments . "<br>";

Отримаємо:

Коментарі посту:
На модерації: 0
Затверджені: 49
Помічені як спам: 0
Коментів у кошику: 0
Всього коментарів: 49

нотатки

список змін

З версії 2.5.0Введено.

Код wp_count_comments() WP 6.0.2

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

	/**
	 * Filters comments count for given post або whole site.
	 *
	 * @ Since 2.7.0
	 *
	 * @param array|stdClass $count На empty array або на 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;
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *