WP_Comment_Query()

19 февраля, 2025
Получение и фильтрация комментариев WordPress с помощью функции WP_Comment_Query(): параметры, примеры, безопасность
Быстрая навигация по записи

Описание функции WP_Comment_Query()

Функция WP_Comment_Query() предоставляет возможность получения и фильтрации комментариев в WordPress. Она позволяет задавать различные параметры для выборки комментариев, такие как пост, автор, статус и дата. Результаты возвращаются в виде массива объектов WP_Comment, что упрощает работу с комментариями и их свойствами.

Функция используется в темах и плагинах для отображения комментариев на сайте.

Параметры

$args

Тип: array

Обязательный: Нет

По умолчанию: array()

Описание: Массив аргументов для запроса комментариев

Возможные значения:

post_id: ID поста, к которому относятся комментарии

user_id: ID автора комментария

status: approve, hold, spam, trash

orderby: comment_date, comment_author, comment_ID

order: ASC, DESC

number: Количество комментариев для получения

offset: Смещение для выборки комментариев

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

Тип: array

Описание: Массив объектов WP_Comment, представляющих комментарии

Возможные значения:

• Массив объектов WP_Comment при успешном выполнении

• Пустой массив если комментарии не найдены

• WP_Error в случае ошибки

Примеры использования

Базовый пример получения комментариев для определенного поста

				
					$args = array('post_id' => 1);
$comments_query = new WP_Comment_Query();
$comments = $comments_query->query($args);
foreach($comments as $comment) {
    echo $comment->comment_content . '<br>';
}
				
			

Выводит содержание комментариев для поста с ID 1

Получение одобренных комментариев для поста с ID 1

				
					$args = array(
    'post_id' => 1,
    'status' => 'approve'
);
$comments = (new WP_Comment_Query())->query($args);
				
			

status=’approve’ фильтрует только одобренные комментарии

Проверка наличия комментариев и обработка ситуации, когда комментарии отсутствуют

				
					$comments = (new WP_Comment_Query())->query(array('post_id' => 99));
if (empty($comments)) {
    echo 'Нет комментариев для данного поста';
}
				
			

Пост с ID 99 может не существовать или не иметь комментариев

Безопасность

Валидация входных данных: Параметры проходят валидацию внутри функции

Санитизация: Параметры автоматически очищаются WordPress

Рекомендации: Используйте esc_html() для вывода содержания комментариев

— Связанные функции

Получает комментарии по заданным параметрам

Выводит комментарии в виде списка

— Хуки

Фильтрует массив комментариев перед их возвратом

Фильтрует аргументы перед выводом списка комментариев

— Примечания

– Ограничения

Может вернуть только комментарии, доступные для текущего пользователя

– Частые проблемы

  • Пустой результат при неправильных параметрах
  • Ошибка 404 если пост не существует

Оставить комментарий

Нужна помощь с WordPress WooCommerce плагинами темой оптимизацией ?

Упрощаем сложное, создаем впечатляющее!
100% без риска
Нет обязательств по найму
Бесплатная оценка
1900 ₽
6 разных демо
Cоздать сайт для блога на WordPress. Идеально подходит для сайта новостей блогов и журналов, обеспечивая комфортное и приятное взаимодействие , полностью на русском языке

Поможем вывести Ваш бизнес на новый уровень!

Проснувшись однажды утром после беспокойного сна, Грегор Замза обнаружил

Добро пожаловать!

Авторизуйтесь, чтобы продолжить

или

Забыли пароль? Восстановить

* Если аккунта у Вас еще нет, то он будет создан автоматически

Давайте составим техническое задание!
100% без риска
Нет обязательств по найму
Бесплатная оценка стоимости
Здравствуйте! Я асистент на основе искусственного интеллекта. Вы можете общаться со мной, как с человеком — задавайте вопросы, описывайте свои идеи и требования.

С удовольствием помогу вам составить техническое задание для вашего WordPress проекта. Если Вам нужна техническая поддержка по купленному у нас плагину или шаблону, то создайте тикет в личном кабинете.

Выберите подходящий вариант или опишите свою задачу в свободной форме, и я помогу вам составить четкий план действий, для оценки стоимости нашими разработчиками! 😊