Удалённые комментарии в WordPress могут сохраняться в базе данных в течение длительного времени, занимая место и замедляя работу сайта. В этой статье мы рассмотрим, как автоматизировать процесс удаления таких комментариев, чтобы поддерживать базу данных в чистоте и оптимальном состоянии.
Почему важно удалять удалённые комментарии
Когда вы удаляете комментарий в WordPress, он переходит в «корзину» и фактически не удаляется из базы данных, а остаётся там до тех пор, пока вы не очистите корзину вручную. Со временем таких комментариев может накопиться много, что увеличивает размер базы данных и замедляет запросы.
Автоматизация удаления удалённых комментариев позволяет:
- Экономить место в базе данных.
- Ускорить работу сайта и админ-панели.
- Минимизировать ручную работу по очистке корзины.
Стандартные возможности WordPress для удаления удалённых комментариев
В WordPress есть настройки для автоматической очистки корзины, которые регулируются параметром EMPTY_TRASH_DAYS. По умолчанию этот параметр равен 30, то есть удалённые комментарии удаляются из базы данных через 30 дней.
Вы можете изменить этот период, добавив в файл wp-config.php следующую строку:
define('EMPTY_TRASH_DAYS', 7); // Удалять из корзины через 7 днейЭто решение подходит, если вам достаточно стандартного периода и вы хотите изменить его на более короткий.
Автоматизация удаления удалённых комментариев с помощью пользовательского кода
Если вы хотите более гибко управлять процессом, например, удалять удалённые комментарии сразу или с определённой периодичностью, можно использовать WP Cron и собственный код.
Создаём функцию удаления удалённых комментариев
Напишем функцию, которая будет удалять все комментарии в статусе trash:
function wpnotes_delete_trashed_comments() {
global $wpdb;
$wpdb->query("DELETE FROM {$wpdb->comments} WHERE comment_approved = 'trash'");
}Добавляем задачу в расписание WP Cron
Теперь нужно зарегистрировать событие, которое будет запускать эту функцию, например, ежедневно.
function wpnotes_schedule_delete_trashed_comments() {
if ( ! wp_next_scheduled( 'wpnotes_daily_delete_trashed_comments' ) ) {
wp_schedule_event( time(), 'daily', 'wpnotes_daily_delete_trashed_comments' );
}
}
add_action( 'wp', 'wpnotes_schedule_delete_trashed_comments' );
add_action( 'wpnotes_daily_delete_trashed_comments', 'wpnotes_delete_trashed_comments' );Этот код проверяет, есть ли уже запланированное событие, и если нет — добавляет его с периодичностью daily (раз в сутки).
Удаление удалённых комментариев вручную через админку и плагины
Если вы хотите быстро очистить корзину без кода, можно использовать плагины, например:
- WP Sweep — плагин для очистки базы данных, включая удалённые комментарии.
- Advanced Database Cleaner — более продвинутый инструмент для оптимизации базы.
Они позволяют запускать очистку вручную или по расписанию, что удобно для нерегулярных задач.
Советы по безопасному удалению комментариев
Перед автоматическим удалением удалённых комментариев рекомендуется сделать бэкап базы данных, чтобы избежать потери важных данных.
Также стоит учитывать, что иногда удалённые комментарии могут понадобиться для восстановления, поэтому не рекомендуется удалять их мгновенно.
Используйте автоматизацию с разумным периодом удаления, например, 7–30 дней после удаления.
Пример использования плагина Clearfy Pro для оптимизации базы
Плагин Clearfy Pro предлагает опции для автоматической очистки базы данных, включая удалённые комментарии. Его можно настроить для регулярной очистки без необходимости писать код.
Clearfy Pro также помогает отключать ненужные функции WordPress, что дополнительно ускоряет сайт.
Подводим итоги: как выбрать метод автоматизации
Если вам нужна простая настройка — достаточно изменить параметр EMPTY_TRASH_DAYS в wp-config.php.
Для более гибкого и моментального удаления — используйте собственные функции с WP Cron, как показано в примере.
Если предпочитаете готовые решения, рассмотрите плагины WP Sweep, Advanced Database Cleaner или Clearfy Pro.
В итоге автоматизация удаления удалённых комментариев — важный шаг в поддержании производительности и чистоты вашего WordPress-сайта.