Как отключить автоматическое удаление старых записей через WP-Cron в WordPress

В WordPress есть встроенный механизм планирования задач — WP-Cron, который используется для выполнения разных фоновых процессов, включая автоматическую очистку старых записей, ревизий, мусорных комментариев и т.д. Однако в некоторых случаях автоматическое удаление старых записей и ревизий может мешать, если вы хотите сохранить полный архив контента или управлять удалением вручную. В этой статье подробно разберём, как отключить автоматическое удаление старых записей через WP-Cron и какие альтернативные решения можно применить.

Как работает автоматическое удаление записей в WordPress

По умолчанию WordPress хранит несколько ревизий каждой записи, чтобы пользователь мог откатиться к предыдущей версии. Однако, чтобы база данных не разрасталась слишком сильно, WP-Cron периодически запускает задачу по удалению устаревших ревизий и мусорных записей.

Эта задача реализована через хук wp_scheduled_delete, который запускает функцию wp_delete_auto_drafts() и удаляет ревизии старше установленного времени.

Если вам нужно полностью отключить это поведение, то отключение WP-Cron не всегда подходит, так как он отвечает за множество важных задач сайта. Вместо этого можно selectively отключить именно задачу удаления.

Отключение автоматического удаления ревизий и мусора через WP-Cron

Чтобы отключить автоматическое удаление ревизий и мусорных записей, можно удалить запланированное событие из WP-Cron. Вот пример функции, которую можно добавить в файл functions.php вашей темы или в кастомный плагин:

function wpmonitor_disable_scheduled_delete() {
    $timestamp = wp_next_scheduled('wp_scheduled_delete');
    if ($timestamp) {
        wp_unschedule_event($timestamp, 'wp_scheduled_delete');
    }
}
add_action('init', 'wpmonitor_disable_scheduled_delete');

Этот код проверяет, есть ли запланированное событие wp_scheduled_delete, и при его наличии отменяет его. Таким образом, автоматическая очистка ревизий и мусора перестанет выполняться.

Важные нюансы и последствия

После отключения автоматического удаления ревизий база данных будет постепенно разрастаться, что может негативно сказаться на производительности сайта. Поэтому рекомендуем регулярно проводить ручную очистку с помощью специальных плагинов.

Ручная очистка старых ревизий и мусорных записей с помощью плагинов

Если вы отключили автоматическую очистку, стоит периодически удалять ненужные записи вручную. Для этого отлично подойдут плагины:

  • WP-Optimize — бесплатный плагин для оптимизации базы данных и удаления ревизий, мусорных комментариев, спама и прочего хлама.
  • Advanced Database Cleaner — позволяет настраивать очистку базы и автоматизировать процессы с расширенными фильтрами.
  • Clearfy Pro — платный плагин от WPShop с расширенными функциями оптимизации и очистки, включая гибкое управление ревизиями.

Использование плагинов позволяет контролировать очистку базы данных, не полагаясь на WP-Cron.

Альтернативный метод: уменьшение количества ревизий в WordPress

Если полностью отключать удаление ревизий не хочется, можно ограничить их количество. Для этого в wp-config.php добавьте строку:

define('WP_POST_REVISIONS', 3); // Хранить не более 3 ревизий

Это позволит WordPress сохранять максимум 3 ревизии на запись, а старые будут автоматически удаляться. Такой подход снижает нагрузку на базу данных, сохраняя при этом историю изменений.

Отключение ревизий полностью

Если ревизии вам не нужны, можно полностью отключить их сохранение:

define('WP_POST_REVISIONS', false);

Однако это не влияет на автоматическое удаление других типов мусора, поэтому для комплексного контроля нужно использовать предыдущие методы.

Контроль WP-Cron и проверка запланированных задач

Для мониторинга и управления WP-Cron задачами рекомендуем использовать плагин WP Crontrol. Он позволяет:

  • Просматривать все запланированные задачи.
  • Удалять или изменять расписание задач.
  • Добавлять собственные задачи с нужной периодичностью.

Это удобный инструмент для контроля работы WP-Cron и предотвращения нежелательных автоматических действий.

Выводы и рекомендации

Отключение автоматического удаления старых записей через WP-Cron в WordPress — задача, которая требует аккуратного подхода. Рекомендуется:

  • Отключать только нужные задачи, не влияя на всю систему WP-Cron.
  • Использовать плагины для регулярной ручной очистки базы данных.
  • Ограничивать количество ревизий через WP_POST_REVISIONS.
  • Контролировать WP-Cron с помощью плагинов типа WP Crontrol.

Такой подход обеспечит стабильную работу сайта без лишней нагрузки на базу данных.

Как создать собственный плагин для мониторинга здоровья WordPress
08.04.2026
Как предотвратить дублирование заказов в WooCommerce
01.05.2026
Как установить и настроить WP Remark для автоматизации комментирования в WordPress
12.03.2026
WooCommerce: не отображается цена товара после обновления — как исправить
27.04.2026
WooCommerce: артикул (SKU) не сохраняется при редактировании товара — как исправить
04.05.2026