Спам в комментариях — одна из самых распространенных проблем на сайтах WordPress, особенно если не настроена эффективная защита. Ручная проверка и удаление спам-комментариев отнимает много времени и снижает продуктивность работы с сайтом. В этой статье разберём, как автоматизировать процесс удаления спама в комментариях с помощью плагинов и собственного кода, а также рассмотрим практические советы по предотвращению попадания спама.
Почему автоматизация удаления спама важна для WordPress
Во-первых, спам-комментарии ухудшают качество контента и негативно влияют на SEO сайта. Во-вторых, они могут создавать нагрузку на базу данных и замедлять работу сайта. Автоматизация позволяет своевременно и без участия пользователя очищать базу от нежелательных записей, что экономит время и ресурсы.
Кроме того, автоматическая обработка спама снижает риск публикации вредоносных ссылок и защищает пользователей сайта.
Использование плагинов для автоматического удаления спама
Самый простой способ — подключить специализированные плагины, которые умеют автоматически фильтровать и удалять спам в комментариях.
1. Akismet Anti-Spam
Один из самых популярных и эффективных плагинов. Он проверяет комментарии через API и помечает спам. Можно настроить автоматическое удаление помеченных комментариев через определённое время.
Чтобы включить автоматическое удаление, добавьте в файл functions.php вашей темы следующий код:
function wptem_delete_spam_comments() {
global $wpdb;
$days = 7; // удалять спам старше 7 дней
$wpdb->query($wpdb->prepare(
"DELETE FROM {$wpdb->comments} WHERE comment_approved = 'spam' AND comment_date < NOW() - INTERVAL %d DAY",
$days
));
}
add_action('wp_scheduled_delete', 'wptem_delete_spam_comments');
Этот хук wp_scheduled_delete вызывается по расписанию и удаляет старый спам.
2. WP-SpamShield Anti-Spam
Плагин не только фильтрует спам, но и блокирует спам-ботов на уровне формы. Имеет гибкие настройки и не требует капчи.
Для автоматического удаления спама в базе можно настроить CRON-задание через интерфейс плагина или использовать тот же подход с хук-ом wp_scheduled_delete.
3. Clearfy Pro (оптимизация спама)
Clearfy Pro из WPSHOP помогает оптимизировать работу сайта и управлять спамом, включая автоматическое удаление спам-комментариев и отключение лишних функций WordPress, которые могут способствовать спаму.
Как написать собственный код для автоматического удаления спама
Если вы хотите гибко контролировать процесс, можно написать свой код, используя WP_Cron и функции WordPress для работы с комментариями.
Пример функции для удаления спама старше 3 дней
function wptem_cron_delete_old_spam_comments() {
$args = [
'status' => 'spam',
'date_query' => [
'before' => date('Y-m-d H:i:s', strtotime('-3 days'))
],
'fields' => 'ids'
];
$spam_comments = get_comments($args);
foreach ($spam_comments as $comment_id) {
wp_delete_comment($comment_id, true);
}
}
// Регистрируем событие, если оно ещё не зарегистрировано
if (!wp_next_scheduled('wptem_spam_cleanup_event')) {
wp_schedule_event(time(), 'daily', 'wptem_spam_cleanup_event');
}
// Привязываем функцию к событию
add_action('wptem_spam_cleanup_event', 'wptem_cron_delete_old_spam_comments');
Этот код создаёт ежедневное событие, которое удаляет спам-комментарии старше 3 дней. Можно изменить интервал и срок удаления по вашим требованиям.
Дополнительные методы снижения спама в комментариях
Для снижения количества спама полезно комбинировать автоматическое удаление с другими методами защиты.
1. Отключение комментариев для старых записей
Спам чаще всего приходит на старые записи. В настройках WordPress можно отключить комментарии для записей старше определённого количества дней.
2. Внедрение CAPTCHA и антибот-защиты
Плагины, такие как WPGPT или другие формы с CAPTCHA, помогают отсеивать ботов без необходимости ручной модерации.
3. Использование плагинов типа WPRemark для отзывов с контролем
Если вы используете отзывы с комментариями, WPRemark позволяет модерировать отзывы и предотвращать спам.
Выводы и практические рекомендации
Автоматизация удаления спама в комментариях — это простой и эффективный способ поддерживать чистоту сайта и экономить время. Используйте готовые плагины с функцией автоматического удаления или пишите кастомный код для гибкой настройки. Обязательно комбинируйте удаление с профилактическими методами — это обеспечит максимальную защиту.
Для начала рекомендую подключить Akismet, настроить автоматическое удаление через CRON и дополнительно использовать Clearfy Pro для комплексной оптимизации. Если хотите больше контроля — напишите свой код, приведённый выше, и адаптируйте под свои нужды.