Спам-комментарии и спам-записи — одна из постоянных проблем сайтов на WordPress. Для поддержания чистоты базы данных и улучшения производительности важно настроить автоматическое удаление спама. В этой статье рассмотрим, как реализовать удаление спама, используя встроенные средства WordPress и дополнительно — популярный плагин Clearfy Pro, который можно получить на WPSHOP.
Почему важно удалять спам автоматически
Ручное удаление спама — неэффективно, особенно если сайт посещает много пользователей, и спам поступает постоянно. Спам увеличивает нагрузку на базу данных, замедляет выполнение запросов и может негативно влиять на SEO-показатели сайта. Автоматизация процесса позволяет:
- Сохранять базу данных чистой от мусорных записей.
- Уменьшить нагрузку на сервер.
- Обеспечить быструю работу сайта и улучшить пользовательский опыт.
Давайте посмотрим, как это сделать самостоятельно.
Удаление спама через WP-Cron и пользовательскую функцию
WordPress имеет встроенную систему планировщика (WP-Cron), которая позволяет запускать задачи по расписанию. Мы создадим функцию, которая будет удалять все комментарии и записи со статусом спам, и запустим её ежедневно.
Код функции удаления спама
function wptricks_delete_spam_content() {
global $wpdb;
// Удаляем спам-комментарии
$wpdb->query("DELETE FROM $wpdb->comments WHERE comment_approved = 'spam'");
// Удаляем записи со статусом spam (если такие есть)
$wpdb->query("DELETE FROM $wpdb->posts WHERE post_status = 'spam'");
}
Эта функция напрямую удаляет записи из базы данных. Будьте осторожны и обязательно сделайте резервную копию перед использованием.
Регистрация задачи в WP-Cron
function wptricks_schedule_spam_cleanup() {
if ( ! wp_next_scheduled( 'wptricks_daily_spam_cleanup' ) ) {
wp_schedule_event( time(), 'daily', 'wptricks_daily_spam_cleanup' );
}
}
add_action( 'wp', 'wptricks_schedule_spam_cleanup' );
add_action( 'wptricks_daily_spam_cleanup', 'wptricks_delete_spam_content' );
Этот код проверяет, есть ли уже запланированное событие, и если нет — добавляет его. После этого функция wptricks_delete_spam_content будет запускаться ежедневно.
Как расширить функционал: удаление спама с уведомлением
Если нужно получать уведомления после удаления спама, можно добавить отправку email администратору:
function wptricks_delete_spam_content_with_notice() {
global $wpdb;
$deleted_comments = $wpdb->query("DELETE FROM $wpdb->comments WHERE comment_approved = 'spam'");
$deleted_posts = $wpdb->query("DELETE FROM $wpdb->posts WHERE post_status = 'spam'");
$message = "Удалено спам-комментариев: " . $deleted_comments . "\nУдалено спам-записей: " . $deleted_posts;
wp_mail( get_option('admin_email'), 'Отчёт об удалении спама на сайте', $message );
}
add_action( 'wptricks_daily_spam_cleanup', 'wptricks_delete_spam_content_with_notice' );
Теперь после выполнения задачи на почту администратора будет приходить отчет.
Использование плагина Clearfy Pro для автоматического удаления спама
Если не хотите писать код, можно воспользоваться плагином Clearfy Pro, который имеет встроенные настройки для управления спамом и автоматическим удалением мусорных комментариев и записей.
После установки плагина на WPSHOP, в настройках Clearfy перейдите в раздел "Оптимизация базы данных" и активируйте опцию автоматического удаления спама по расписанию.
Clearfy Pro позволяет:
- Удалять спам-комментарии через заданный интервал.
- Очистить базу от черновиков, ревизий и мусорных записей.
- Оптимизировать таблицы базы данных без риска.
Советы по предотвращению спама
Удаление спама — важный этап, но лучше предотвратить его появление. Вот основные рекомендации:
- Использовать CAPTCHA или Google reCAPTCHA на формах комментариев и регистрации.
- Активировать модерацию комментариев, чтобы спам не появлялся сразу на сайте.
- Установить плагин для антиспама, например, Akismet или встроенный в Clearfy антиспам-модуль.
- Отключить комментарии на страницах, где они не нужны, чтобы снизить риск спама.
Пример добавления простого Google reCAPTCHA с помощью плагина Clearfy Pro:
/* Включите модуль «Защита от спама» в Clearfy Pro и настройте ключи reCAPTCHA */
Заключение по теме автоматического удаления спама
Автоматизация удаления спама позволяет сэкономить время и ресурсы сервера, сделать сайт быстрее и удобнее для пользователей. Выбор между собственным кодом и готовым решением зависит от ваших навыков и задач. Код из примеров можно адаптировать под свои нужды, а Clearfy Pro отлично подойдет для комплексной оптимизации и защиты.