wphow.ru wordpress WPHow

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

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

Почему важно удалять спам автоматически

Ручное удаление спама — трудоёмкий процесс, особенно если сайт популярен и комментарии приходят регулярно. Автоматизация помогает:

  • Снизить нагрузку на администраторов сайта.
  • Поддерживать чистоту базы данных.
  • Улучшить скорость работы сайта за счёт меньшего объёма данных.
  • Избежать негативного влияния спама на SEO.

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

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

1. Akismet Anti-Spam

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

Чтобы настроить автоматическое удаление спама в Akismet, достаточно выполнить несколько шагов:

  1. Установить и активировать плагин Akismet.
  2. Подключить ключ API (можно получить бесплатно для личных сайтов).
  3. Перейти в раздел настроек и включить удаление спама старше 15 дней.

Akismet автоматически удалит все спам-комментарии, которые были помечены и не проверены в течение 15 дней.

2. WP Spam Cleaner

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

Преимущества WP Spam Cleaner:

  • Автоматическая очистка по расписанию.
  • Удаление спам-аккаунтов и комментариев.
  • Оптимизация базы данных после очистки.

Установите плагин WP Spam Cleaner и настройте автоматический запуск через Cron.

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

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

Ниже приведён пример функции, которую можно добавить в файл functions.php вашей темы или в собственный плагин.

function wphow_delete_old_spam_comments() {
    global $wpdb;
    $days = 15; // Количество дней, после которых спам удаляется
    $date = date('Y-m-d H:i:s', strtotime("-" . $days . " days"));

    // Получаем ID спам-комментариев старше $days
    $spam_comments = $wpdb->get_col($wpdb->prepare(
        "SELECT comment_ID FROM $wpdb->comments WHERE comment_approved = 'spam' AND comment_date < %s",
        $date
    ));

    if (!empty($spam_comments)) {
        foreach ($spam_comments as $comment_id) {
            wp_delete_comment($comment_id, true);
        }
    }
}

// Запускаем функцию через Cron
add_action('wphow_daily_spam_cleanup', 'wphow_delete_old_spam_comments');

// Регистрируем Cron-задание при активации темы или плагина
function wphow_schedule_spam_cleanup() {
    if (!wp_next_scheduled('wphow_daily_spam_cleanup')) {
        wp_schedule_event(time(), 'daily', 'wphow_daily_spam_cleanup');
    }
}
add_action('wp', 'wphow_schedule_spam_cleanup');

// Очищаем Cron при деактивации
function wphow_unschedule_spam_cleanup() {
    $timestamp = wp_next_scheduled('wphow_daily_spam_cleanup');
    if ($timestamp) {
        wp_unschedule_event($timestamp, 'wphow_daily_spam_cleanup');
    }
}

Эта функция раз в сутки очищает базу от спам-комментариев старше 15 дней. Вы можете изменить период удаления, изменив значение переменной $days.

Как проверить работу функции

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

do_action('wphow_daily_spam_cleanup');

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

Рекомендации по оптимизации удаления спама

Кроме автоматизации удаления, важно следовать простым рекомендациям:

  • Используйте CAPTCHA — например, плагин reCAPTCHA или аналогичный, чтобы минимизировать количество спама.
  • Ограничивайте ссылки в комментариях — спам часто содержит много ссылок.
  • Регулярно обновляйте WordPress и плагины — чтобы избежать уязвимостей, которые могут использовать спамеры.
  • Используйте специализированные плагины для антиспама, например Akismet или WP Spam Cleaner.

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

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

×
Оптимизируй свой сайт!

Скидка -15% на премиум плагин Clearfy Pro

Купить плагин сейчас ⋙