Оценка и фильтровка комментариев в WordPress по ключевым словам

Ведение сайта на WordPress часто сопровождается необходимостью контроля комментариев. Спам, оскорбления и неуместные сообщения могут негативно влиять на репутацию ресурса и качество обсуждений. В этой статье разберем, как организовать автоматическую оценку и фильтрацию комментариев в WordPress по ключевым словам с помощью кода и плагинов. Это позволит повысить качество комментариев и сэкономить время на модерацию.

Зачем нужна фильтрация комментариев по ключевым словам

Фильтрация комментариев позволяет:

  • Автоматически блокировать спам и нежелательные сообщения.
  • Предотвратить появление нецензурной лексики и оскорблений.
  • Улучшить качество дискуссий на сайте.
  • Снизить нагрузку на модераторов.

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

Как реализовать фильтрацию комментариев по ключевым словам в коде

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

Пример функции для фильтрации комментариев

function wpcommunity_filter_comment_by_keywords($commentdata) {
    $bad_words = array('спам', 'реклама', 'дурь', 'оскорбление'); // список запрещенных слов
    foreach ($bad_words as $word) {
        if (stripos($commentdata['comment_content'], $word) !== false) {
            wp_die('Ваш комментарий содержит запрещенные слова и не может быть опубликован.');
        }
    }
    return $commentdata;
}
add_filter('preprocess_comment', 'wpcommunity_filter_comment_by_keywords');

В этом коде мы используем фильтр preprocess_comment, который позволяет перехватить данные комментария до сохранения. Функция stripos ищет запрещенные слова без учета регистра. Если слово найдено, выводится сообщение и комментарий не публикуется.

Улучшение фильтрации: оценка по количеству ключевых слов и автоматическая пометка спама

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

Пример расширенной функции оценки комментариев

function wpcommunity_score_comment_keywords($commentdata) {
    $bad_words = array('спам', 'реклама', 'дурь', 'оскорбление');
    $threshold = 2; // минимальное количество запрещенных слов для пометки
    $score = 0;
    foreach ($bad_words as $word) {
        if (stripos($commentdata['comment_content'], $word) !== false) {
            $score++;
        }
    }
    if ($score >= $threshold) {
        add_filter('pre_comment_approved', function() { return 'spam'; });
    }
    return $commentdata;
}
add_filter('preprocess_comment', 'wpcommunity_score_comment_keywords');

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

Использование плагинов для фильтрации комментариев по ключевым словам

Если вы не хотите писать код, существует несколько плагинов, которые позволяют фильтровать комментарии по ключевым словам и настраивать гибкие правила.

  • WordPress Zero Spam — простой антиспам плагин, который можно дополнить своими фильтрами.
  • Comment Blacklist Manager — позволяет управлять списком запрещенных слов и автоматически удалять комментарии с ними.
  • Clearfy Pro — расширенный плагин оптимизации и безопасности с функциями фильтрации комментариев. Подробнее о нем можно узнать на wpshop.ru.

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

Как интегрировать фильтрацию с системой уведомлений и модерацией

Для удобства работы с комментариями полезно настроить уведомления модератора при появлении комментариев с подозрительными ключевыми словами. Также стоит предусмотреть возможность автоматической отправки таких комментариев в очередь на ручную проверку.

Для этого можно использовать хук comment_post и отправлять email с подробностями:

function wpcommunity_notify_moderator_on_bad_comment($comment_ID, $comment_approved) {
    $comment = get_comment($comment_ID);
    $bad_words = array('спам', 'реклама', 'дурь', 'оскорбление');
    foreach ($bad_words as $word) {
        if (stripos($comment->comment_content, $word) !== false) {
            wp_mail('moderator@example.com', 'Подозрительный комментарий', 'Комментарий ID: ' . $comment_ID . ' содержит запрещенные слова.');
            break;
        }
    }
}
add_action('comment_post', 'wpcommunity_notify_moderator_on_bad_comment', 10, 2);

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

Советы по подбору ключевых слов и поддержке фильтров

Для эффективной работы фильтра важно:

  • Регулярно обновлять список запрещенных слов с учетом новых спам-трендов и контекста вашего сайта.
  • Избегать слишком широких общих слов, чтобы не блокировать добросовестных пользователей.
  • Комбинировать фильтрацию по ключевым словам с другими методами антиспама, например, Akismet, CAPTCHA или сервисами антибот.
  • Протестировать фильтр на тестовой среде, чтобы оценить уровень ложных срабатываний.

Заключение

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

Для более продвинутых возможностей рекомендуем обратить внимание на Clearfy Pro — плагин, который совмещает оптимизацию, безопасность и удобную фильтрацию комментариев.

Как использовать AJAX в WordPress для обновления контента без перезагрузки страницы
29.12.2025
Как создать свою систему ролей и разрешений в WordPress
30.11.2025
Как автоматизировать удаление старого контента в WordPress
13.01.2026
Как установить ограничение на регистрацию в WordPress по домену e-mail
10.04.2026
Как автоматизировать удаление неактивных пользователей в WordPress
16.06.2026

Задать вопрос о вордпресс, получить ответ - это все можно сделать в нашем сообществе WP. Сайт в данный момент в разработке, изучите ссылки ниже: