Описание comments_array
— Filter
Хук comments_array позволяет изменять массив комментариев перед их выводом. Он срабатывает во время получения комментариев для отображения на странице, что позволяет модифицировать их содержание или структуру перед выводом на экран
Примеры использования
Пример удаления комментариев с определенным словом в содержании:
add_filter('comments_array', function($comments, $post_id) {
return array_filter($comments, function($comment) {
return strpos($comment['content'], 'нежелательное слово') === false;
});
}, 10, 2);
В этом примере мы удаляем комментарии, содержащие ‘нежелательное слово’.
Пример добавления дополнительного поля к каждому комментарию:
add_filter('comments_array', function($comments, $post_id) {
foreach ($comments as &$comment) {
$comment['custom_field'] = 'значение';
}
return $comments;
}, 10, 2);
Здесь мы добавляем к каждому комментарию новое поле ‘custom_field’ с заданным значением.
Пример изменения авторов комментариев:
add_filter('comments_array', function($comments, $post_id) {
foreach ($comments as &$comment) {
if ($comment['author'] === 'Старый Автор') {
$comment['author'] = 'Новый Автор';
}
}
return $comments;
}, 10, 2);
В этом примере мы меняем имя автора комментариев с ‘Старый Автор’ на ‘Новый Автор’.
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо изменять или фильтровать массив комментариев перед их выводом на экран
– Производительность
Обратите внимание на производительность, особенно если вы обрабатываете большое количество комментариев, так как это может замедлить загрузку страницы
– Предупреждения
Убедитесь, что изменения не нарушают структуру данных комментариев, так как это может повлиять на их отображение
Альтернативы
Тип: action
Этот хук позволяет выполнять действия перед добавлением нового комментария, что может быть полезно для валидации
Используйте его, если нужно выполнять действия перед сохранением комментария, а не перед его выводом