Как настроить автоматическую очистку черновиков и ревизий в WordPress?
Автоматическая очистка черновиков и ревизий настраивается либо плагином с расписанием задач, либо вручную через константы в файле wp-config.php и задачу в WP-Cron. По умолчанию WordPress хранит все ревизии записей и автосохранения бессрочно, поэтому база растёт даже без новых публикаций. Ограничение задаётся константой WP_POST_REVISIONS, а удаление старых копий выполняется функцией wp_delete_post_revision по расписанию.
Практическая реализация выглядит так: сначала делается полный бэкап базы данных, затем в wp-config.php прописывается лимит ревизий, после чего в functions.php добавляется хук на событие cron, который раз в сутки выбирает черновики старше заданного срока и старые ревизии и удаляет их вместе с осиротевшими записями в таблице postmeta. Ключевой нюанс — на обычном хостинге WP-Cron запускается только при посещении сайта, поэтому для стабильной работы отключают встроенный планировщик константой DISABLE_WP_CRON и подключают системный cron на вызов wp-cron.php каждые 15–30 минут. Второй нюанс — после массового удаления таблицы wp_posts и wp_postmeta стоит оптимизировать, иначе освобождённое место не вернётся на диск.
Чек-лист внедрения: резервная копия базы и файлов; лимит ревизий в wp-config.php; исключение нужных черновиков из выборки по автору или статусу; настроенное cron-событие с логированием удалённых записей; проверка через неделю, что автосохранения не удаляются в момент редактирования. Если нет времени разбираться с хуками, конфликтами плагинов кэша и настройкой серверного планировщика, эту задачу закрывают под ключ: аудит базы, безопасная настройка расписания, оптимизация таблиц и отчёт по освобождённому объёму.
