Ведение отзывов пользователей — важный элемент для многих сайтов на WordPress, особенно для магазинов, обзоров и сервисов. Однако с течением времени база отзывов может разрастаться и содержать устаревшие или нерелевантные отзывы, которые ухудшают восприятие сайта и замедляют работу базы данных. В этой статье разберем, как автоматически удалять старые отзывы в WordPress, используя как готовые плагины, так и кастомный код, чтобы поддерживать отзывы в актуальном состоянии и оптимизировать работу сайта.
Почему важно удалять старые отзывы в WordPress
Со временем отзывы на сайте могут терять актуальность: например, отзывы о старых версиях товара или услуг, которые уже не предлагаются. Удаление устаревших отзывов помогает:
- Поддерживать репутацию сайта, показывая только свежие и релевантные мнения.
- Уменьшить нагрузку на базу данных и повысить скорость работы сайта.
- Упростить модерацию и управление отзывами.
Автоматизация удаления экономит время и снижает человеческий фактор ошибок.
Автоматическое удаление старых отзывов с помощью плагинов WordPress
Clearfy Pro для управления отзывами и оптимизации
Clearfy Pro — мощный плагин для оптимизации WordPress, который среди прочего позволяет управлять отзывами и комментариями. В нём можно настроить автоматическое удаление комментариев (отзывов) старше определенного периода.
Для активации:
- Установите и активируйте Clearfy Pro.
- В разделе настроек плагина перейдите к модулю оптимизации комментариев.
- Настройте параметр удаления комментариев старше нужного количества дней.
Это решение не требует программирования и подходит для большинства сайтов.
Другие плагины для автоматического удаления отзывов
Если у вас нет Clearfy Pro, можно использовать бесплатные плагины, например:
- Auto Delete Comments — позволяет настроить удаление комментариев по возрасту.
- WP Bulk Delete — с помощью гибких фильтров удаляет записи, включая отзывы.
В обоих случаях настройка производится через интерфейс плагина.
Кастомное решение: как написать функцию для удаления старых отзывов в WordPress
Если вы предпочитаете точечный контроль и хотите встроить автоматическое удаление в свой сайт без плагинов, можно написать собственную функцию. Ниже пример кода, который удаляет отзывы (комментарии с типом "review" или любые обычные комментарии) старше 180 дней.
function expertreview_auto_delete_old_reviews() {
global $wpdb;
$days = 180; // возраст отзывов в днях
$cutoff_date = date('Y-m-d H:i:s', strtotime("-{$days} days"));
// Получаем ID комментариев старше cutoff_date
$old_comments = $wpdb->get_col($wpdb->prepare(
"SELECT comment_ID FROM $wpdb->comments WHERE comment_date < %s AND comment_approved = 1",
$cutoff_date
));
if (!empty($old_comments)) {
foreach ($old_comments as $comment_id) {
wp_delete_comment($comment_id, true); // true — удалить навсегда
}
}
}
// Добавляем в крон для автоматического запуска раз в сутки
if (!wp_next_scheduled('expertreview_daily_delete_old_reviews')) {
wp_schedule_event(time(), 'daily', 'expertreview_daily_delete_old_reviews');
}
add_action('expertreview_daily_delete_old_reviews', 'expertreview_auto_delete_old_reviews');Этот код регистрирует ежедневное событие, которое удаляет все одобренные комментарии старше 180 дней. Если у вас отзывы — кастомный тип комментариев, добавьте условие для comment_type.
Расширение функции для удаления отзывов по типу
Если отзывы на сайте имеют тип комментария, например, review, то можно изменить запрос так:
"SELECT comment_ID FROM $wpdb->comments WHERE comment_date < %s AND comment_approved = 1 AND comment_type = 'review'"Это позволит не затрагивать другие комментарии.
Как предотвратить случайное удаление нужных отзывов
Очень важно не удалять отзывы, которые могут быть важны для SEO или клиентов. Для этого:
- Тестируйте функцию сначала на тестовом сайте.
- Добавьте логику исключения важных отзывов, например, по рейтингу или определенным меткам.
- Создайте резервные копии базы данных перед активацией автоматического удаления.
Вы также можете интегрировать эту функцию с плагином WPRemark, который управляет отзывами и может помочь фильтровать и сортировать их перед удалением.
Заключение: поддержка отзывов в актуальном состоянии
Автоматическое удаление старых отзывов — полезный инструмент, который помогает содержать сайт в порядке и улучшать его производительность. Выбор между плагинами и собственным кодом зависит от вашего уровня владения WordPress и специфики проекта. Используйте Clearfy Pro или WP Bulk Delete для простоты, либо кастомный код для гибкости. Не забывайте тестировать и создавать резервные копии, чтобы избежать потерь данных.