Ведение активного блога или сайта на WordPress часто сопровождается проблемой спама в комментариях. Ручная модерация может занять много времени, а стандартные инструменты не всегда справляются с потоком нежелательных сообщений. В этой статье рассмотрим, как настроить автоматическое удаление спама в комментариях WordPress с помощью плагинов и собственного кода, чтобы облегчить управление сайтом и повысить качество контента.
Почему важно автоматическое удаление спама в комментариях WordPress
Спам-комментарии не только ухудшают пользовательский опыт, но и могут негативно влиять на SEO сайта, замедлять работу базы данных и создавать риск безопасности. Использование автоматических фильтров и скриптов позволяет своевременно удалять нежелательные сообщения без участия человека.
Кроме того, автоматизация экономит время администратора и снижает нагрузку на сервер, что критично для сайтов с большим количеством посетителей и активных обсуждений.
Популярные плагины для автоматического удаления спама в комментариях
Существует несколько проверенных плагинов, которые помогут эффективно бороться с комментаторским спамом:
- Akismet Anti-Spam – стандартный и один из самых популярных плагинов для фильтрации спама на WordPress. Работает на основе облачного сервиса, проверяя комментарии и помечая подозрительные.
- Antispam Bee – бесплатный плагин, который не требует регистрации и легко настраивается. Поддерживает автоматическое удаление спама после определенного времени.
- WP SpamShield – комплексное решение, обеспечивающее защиту от спама в комментариях, регистрациях и контактных формах без капчи.
Для примера настроим автоматическое удаление спама через Akismet и добавим кастомный код для удаления старых спам-комментариев.
Настройка Akismet для автоматического удаления спама
После установки и активации плагина необходимо получить API-ключ на официальном сайте Akismet и ввести его в настройках плагина.
Akismet автоматически помечает комментарии как спам, но по умолчанию они не удаляются без участия админа. Чтобы настроить автоматическое удаление спама старше 15 дней, можно использовать следующий код.
Автоматическое удаление спам-комментариев с помощью кода
Добавьте в файл functions.php вашей темы или в отдельный плагин следующий код. Он создаст планировщик, который будет ежедневно удалять спам-комментарии старше 15 дней.
function wpdemo_delete_old_spam_comments() {
global $wpdb;
$days = 15;
$wpdb->query( $wpdb->prepare(
"DELETE FROM $wpdb->comments WHERE comment_approved = 'spam' AND comment_date < NOW() - INTERVAL %d DAY",
$days
) );
}
if ( ! wp_next_scheduled( 'wpdemo_daily_spam_cleanup' ) ) {
wp_schedule_event( time(), 'daily', 'wpdemo_daily_spam_cleanup' );
}
add_action( 'wpdemo_daily_spam_cleanup', 'wpdemo_delete_old_spam_comments' );
Этот простой скрипт удалит все спам-комментарии, которым больше 15 дней, что значительно уменьшит нагрузку на базу данных и очистит панель администратора.
Дополнительные советы по борьбе со спамом в комментариях
Помимо автоматического удаления спама, рекомендуется применять комплексные меры:
- Используйте капчу – например, плагин My Popup позволяет добавлять капчу в формы комментариев.
- Ограничьте ссылки в комментариях – слишком много ссылок часто указывает на спам.
- Включите модерацию для новых комментаторов – это снизит количество автоматических спам-ботов.
- Используйте фильтры по ключевым словам – в настройках WordPress можно указать слова, при появлении которых комментарий будет отправлен в спам.
Пример использования фильтра для ключевых слов
Добавьте в functions.php такой код для автоматической пометки комментариев, содержащих запрещенные слова:
function wpdemo_filter_spam_keywords( $approved , $commentdata ) {
$spam_words = array('viagra', 'casino', 'loan');
foreach ( $spam_words as $word ) {
if ( stripos( $commentdata['comment_content'], $word ) !== false ) {
return 'spam';
}
}
return $approved;
}
add_filter( 'pre_comment_approved', 'wpdemo_filter_spam_keywords', 99, 2 );
Этот фильтр проверит текст комментария на наличие нежелательных слов и автоматически отправит такие комментарии в спам.
Интеграция с плагином Clearfy Pro для расширенной оптимизации
Если вы используете Clearfy Pro, этот плагин предлагает дополнительные функции для борьбы со спамом, включая настройку антиспам фильтров и автоматическое удаление спама.
Clearfy Pro позволяет гибко управлять комментариями, блокировать подозрительные IP и оптимизировать работу базы данных, что идеально дополняет описанные выше решения.
Итог
Автоматическое удаление спама в комментариях WordPress – необходимая задача для поддержания здоровья сайта и удобства работы с контентом. Используйте проверенные плагины, дополняйте их собственными скриптами для удаления старого спама и внедряйте комплексные меры защиты. Так вы существенно снизите нагрузку на сайт и улучшите качество взаимодействия с посетителями.