Как использовать хук 'comment_post' для управления комментариями в WordPress

В WordPress комментарии играют важную роль для взаимодействия с посетителями сайта. Иногда требуется добавить дополнительную логику при добавлении комментария. Для этого идеально подходит хук comment_post, который срабатывает сразу после сохранения комментария. В этой статье подробно разберём, как использовать этот хук для решения конкретных задач по управлению комментариями.

Что такое хук comment_post в WordPress

Хук comment_post — это action-хук, который вызывается после успешного добавления комментария в базу данных. Он принимает два параметра: ID комментария и статус комментария (например, 'approve' для одобренных).

Это даёт возможность выполнить дополнительный код сразу после того, как комментарий создан, например, отправить уведомление, провести модерацию, выполнить кастомные проверки и многое другое.

Пример базового использования хука:

add_action('comment_post', 'wp3_handle_new_comment', 10, 2);
function wp3_handle_new_comment($comment_id, $comment_approved) {
    // Ваш код обработки здесь
}

Примеры задач, решаемых с помощью comment_post

Автоматическая модерация комментариев по ключевым словам

Часто требуется автоматически отправлять в спам комментарии с нежелательными словами. С помощью comment_post можно проверить текст и менять статус комментария.

add_action('comment_post', 'wp3_auto_moderate_comment', 10, 2);
function wp3_auto_moderate_comment($comment_id, $comment_approved) {
    if ($comment_approved != 1) return; // Обрабатываем только одобренные

    $comment = get_comment($comment_id);
    $bad_words = ['spamword1', 'spamword2', 'недопустимое'];

    foreach ($bad_words as $word) {
        if (stripos($comment->comment_content, $word) !== false) {
            wp_set_comment_status($comment_id, 'spam');
            break;
        }
    }
}

Такой код проверит комментарий на наличие запрещённых слов и переведёт его в спам, если что-то найдёт.

Отправка уведомлений администратору о новых комментариях

Можно уведомлять администратора сайта о каждом новом комментарии, что особенно полезно для сайтов без постоянного мониторинга панели управления.

add_action('comment_post', 'wp3_notify_admin_new_comment', 10, 2);
function wp3_notify_admin_new_comment($comment_id, $comment_approved) {
    if ($comment_approved != 1) return; // Только одобренные

    $comment = get_comment($comment_id);
    $post = get_post($comment->comment_post_ID);
    $admin_email = get_option('admin_email');

    $subject = 'Новый комментарий на вашем сайте';
    $message = "Новый комментарий к статье '{$post->post_title}':\n\n";
    $message .= $comment->comment_content . "\n\n";
    $message .= "Автор: {$comment->comment_author}\n";
    $message .= "Посмотреть комментарий: " . get_comment_link($comment_id);

    wp_mail($admin_email, $subject, $message);
}

Это простой способ держать руку на пульсе активности на сайте.

Использование хука для интеграции с плагином Clearfy Pro

Если у вас установлен плагин Clearfy Pro, можно дополнительно использовать его инструменты для оптимизации комментариев.

Например, Clearfy Pro позволяет включить расширенную защиту от спама и повысить безопасность комментариев. В связке с comment_post можно писать более сложные проверки и логгирование.

Создание собственного фильтра на хук comment_post в плагине

Если вы разрабатываете плагин под WordPress, рекомендуем использовать префиксы в названии функций, чтобы избежать конфликтов. Например:

add_action('comment_post', 'wp3_custom_comment_processing', 10, 2);
function wp3_custom_comment_processing($comment_id, $comment_approved) {
    // Например, добавим мета-данные к новому комментарию
    if ($comment_approved == 1) {
        add_comment_meta($comment_id, 'wp3_processed', time());
    }
}

Добавление мета-данных поможет в будущем фильтровать или анализировать комментарии.

Советы по отладке и безопасности при работе с comment_post

1. Всегда проверяйте статус комментария, чтобы не выполнять код для неподтверждённых комментариев.

2. При работе с пользовательскими данными используйте функции sanitize_text_field() или другие функции очистки, чтобы избежать XSS и других уязвимостей.

3. Не забывайте добавлять префиксы в названия функций, чтобы избежать конфликтов с другими плагинами и темами.

4. При отправке писем используйте wp_mail с корректной кодировкой и заголовками.

Вывод

Хук comment_post — мощный инструмент для расширения функционала комментариев в WordPress. Он позволяет внедрять кастомную логику сразу после добавления комментария, что помогает автоматизировать модерацию, уведомления и другие задачи. Используйте его с умом, не забывайте про безопасность и оптимизацию.

Как автоматизировать публикацию постов в WordPress
21.01.2026
Как создать автоматические отчёты в WordPress с помощью пакетов Cron и WPGPT
27.02.2026
Как избежать конфликтов между плагинами WordPress
15.01.2026
Как удалить неиспользуемые мета-данные в WordPress
08.12.2025
Как добавить внешний API в WordPress с помощью WPGPT
13.02.2026