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

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

Введение в автоматическое удаление спама

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

Основные преимущества автоматического удаления спама:

  • Экономия времени на модерацию;
  • Улучшение качества комментариев;
  • Повышение безопасности сайта;
  • Уменьшение нагрузки на базу данных.

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

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

1. Akismet Anti-Spam

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

2. WP SpamShield

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

3. Antispam Bee

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

Создаем свое решение для автоматического удаления спама в комментариях WordPress

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

function wpdream_auto_delete_spam_comment($comment_ID, $comment_approved) {
    if ($comment_approved != 1) {
        $comment = get_comment($comment_ID);
        $comment_content = $comment->comment_content;
        $blacklist = array('viagra', 'casino', 'loan'); // Пример ключевых слов
        $has_bad_words = false;
        foreach ($blacklist as $word) {
            if (stripos($comment_content, $word) !== false) {
                $has_bad_words = true;
                break;
            }
        }
        $has_links = preg_match('/https?:\/\//i', $comment_content);

        // Если комментарий помечен как спам или содержит ссылки и ключевые слова, удаляем
        if ($comment->comment_approved == 'spam' || ($has_bad_words && $has_links)) {
            wp_delete_comment($comment_ID, true);
        }
    }
}
add_action('wp_set_comment_status', 'wpdream_auto_delete_spam_comment', 10, 2);

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

Дополнительные советы по борьбе со спамом в комментариях

Используйте reCAPTCHA и другие капчи

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

Ограничьте возможность публиковать ссылки

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

function wpdream_restrict_links_in_comments($commentdata) {
    $max_links = 0; // Максимум ссылок
    preg_match_all('/https?:\/\//i', $commentdata['comment_content'], $matches);
    if (count($matches[0]) > $max_links) {
        wp_die('Комментарии с ссылками запрещены.');
    }
    return $commentdata;
}
add_filter('preprocess_comment', 'wpdream_restrict_links_in_comments');

Регулярно очищайте базу данных от спам-комментариев

Спам-комментарии занимают место в базе данных и замедляют сайт. Можно использовать SQL-запросы или плагины для автоматической очистки. Например, плагин Clearfy Pro предлагает функции оптимизации и очистки базы.

Выводы и рекомендации

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

Как установить автоматический редирект на новый URL в WordPress
06.03.2026
Как добавить отображение последних изменений в административной панели WordPress
07.02.2026
Как исправить нерабочие AJAX-запросы в WooCommerce: практическое руководство
17.04.2026
Как ограничить доступ к отдельным страницам WordPress по ролям пользователя
28.03.2026
Удаление пустых и неиспользуемых категорий WooCommerce без плагинов
22.05.2026