Спам в комментариях — одна из постоянных проблем любого сайта на WordPress. Накопление спам-комментариев не только портит вид, но и замедляет работу сайта и увеличивает нагрузку на базу данных. В этой статье я расскажу, как создать систему автоматического удаления спама в комментариях WordPress, используя готовые плагины и кастомный код.
Почему важно автоматически удалять спам-комментарии
Удаление спама вручную — занятие утомительное и неэффективное. Со временем спам-комментариев становится так много, что стандартные средства администрирования не справляются с нагрузкой. Автоматизация этого процесса помогает:
- Сохранять базу данных чистой и оптимизированной.
- Уменьшать нагрузку на сервер.
- Улучшать скорость работы сайта.
- Повышать качество взаимодействия с посетителями.
Для реализации автоматического удаления спама мы можем использовать как готовые плагины, так и написать свой собственный код.
Использование плагинов для автоматического удаления спама
1. Akismet Anti-Spam
Akismet — самый популярный плагин для борьбы со спамом в комментариях. Он автоматически помечает подозрительные комментарии как спам, а администратор может настроить удаление таких комментариев через определённое время.
Для настройки автоматического удаления спама в Akismet зайдите в Настройки > Akismet и активируйте функцию удаления спам-комментариев старше определённого количества дней.
2. WP Spam Cleaner
Этот плагин позволяет массово удалять спам-комментарии и очистить базу данных. Можно настроить автоматическое удаление спама через WP-Cron.
Для автоматизации добавьте в планировщик WordPress задачу, которая будет запускать очистку, например, раз в неделю.
3. Clearfy Pro (из коробки с wpbook)
Плагин Clearfy Pro содержит функцию автоматического удаления спама из комментариев и других разделов. Он оптимизирует базу и уменьшает количество мусора.
Подробности и скачивание: Clearfy Pro на WPSHOP
Как написать собственный скрипт для автоматического удаления спама
Если вы хотите более тонко контролировать процесс удаления, можно создать собственный плагин или добавить код в functions.php вашей темы.
Пример кода для удаления спам-комментариев старше 7 дней
function wpbook_delete_old_spam_comments() {
global $wpdb;
$days = 7;
$date_limit = date('Y-m-d H:i:s', strtotime('-' . $days . ' days'));
$comments = $wpdb->get_col($wpdb->prepare(
"SELECT comment_ID FROM $wpdb->comments WHERE comment_approved = 'spam' AND comment_date < %s",
$date_limit
));
if (!empty($comments)) {
foreach ($comments as $comment_id) {
wpbook_delete_spam_comment_by_id($comment_id);
}
}
}
function wpbook_delete_spam_comment_by_id($comment_id) {
wp_delete_comment($comment_id, true); // true — удаление без возможности восстановления
}
// Добавляем задачу в WP-Cron для ежедневного запуска
if (!wp_next_scheduled('wpbook_daily_spam_cleanup')) {
wp_schedule_event(time(), 'daily', 'wpbook_daily_spam_cleanup');
}
add_action('wpbook_daily_spam_cleanup', 'wpbook_delete_old_spam_comments');
Этот код удаляет все комментарии со статусом spam, которые старше 7 дней, автоматически каждый день.
Дополнительные методы борьбы со спамом
Использование скрытых полей honeypot
Техника honeypot добавляет в форму скрытое поле, которое видят только боты. Если поле заполнено — комментарий сразу помечается как спам. Это снижает количество мусорных комментариев без CAPTCHA.
Ограничение частоты отправки комментариев
Можно запретить пользователям отправлять комментарии чаще, чем раз в определённое время. Это уменьшит автоматические массовые рассылки спама.
Применение плагинов с антиспам функционалом
Плагины, например, WP-Cerber или Anti-Spam Bee, дополнительно фильтруют подозрительные комментарии и могут помочь в борьбе со спамом.
Оптимизация базы данных после удаления спама
После удаления большого количества спам-комментариев рекомендуется оптимизировать таблицы базы данных для освобождения занимаемого пространства и ускорения запросов.
Плагин Clearfy Pro позволяет сделать это нажатием одной кнопки. Также можно выполнить SQL-запрос:
OPTIMIZE TABLE wp_comments;
Для автоматизации можно добавить этот запрос в скрипт очистки.
Выводы и рекомендации
Комбинация автоматического удаления спама, использования проверенных плагинов и собственного кода позволяет поддерживать чистоту комментариев и оптимизировать работу сайта на WordPress. Для сайтов с большим трафиком и активными комментариями обязательно применяйте автоматические решения, чтобы избежать перегрузки базы данных и сохранить скорость загрузки страниц.