Как настроить автоматическую очистку корзины WordPress
Корзина в WordPress служит защитным буфером для удалённых записей, страниц, комментариев и некоторых других объектов. Если материал был удалён случайно, его можно восстановить в течение определённого времени. Однако со временем в корзине накапливаются старые записи, занимают место в базе данных и усложняют обслуживание сайта. Подробнее о Voicemeeter Bananaのゲイン構造を正しく設定して音割れやノイズを防ぐ基本手順.
По умолчанию WordPress хранит объекты в корзине 30 дней. После этого встроенная задача планировщика должна удалить их автоматически. Такой срок подходит для большинства проектов, но владельцу сайта может потребоваться более короткий период — например, семь дней для новостного ресурса или один день для тестового сайта.
Настройка выполняется через файл wp-config.php, специальный плагин, WP-CLI или небольшой фрагмент кода. Выбор способа зависит от доступа к серверу, уровня подготовки и того, требуется ли единое правило для всего сайта или более гибкая логика удаления.
Перед изменением параметров важно учитывать резервные копии, работу WordPress Cron и особенности хостинга. Автоматическое удаление необратимо: после очистки корзины стандартными средствами WordPress восстановить запись уже нельзя.
Как WordPress работает с корзиной
При удалении записи через административную панель WordPress обычно меняет её статус на trash, а не удаляет строку из базы данных сразу. Поэтому объект исчезает из публичной части сайта и перемещается в раздел «Корзина». Оттуда его можно восстановить или удалить окончательно вручную.
Встроенная функция wp_scheduled_delete запускается планировщиком WordPress и проверяет объекты, находящиеся в корзине дольше установленного срока. Для обычных записей и страниц используется значение константы EMPTY_TRASH_DAYS. Похожие процессы применяются к комментариям, однако точное поведение может зависеть от версии WordPress и установленных расширений.
Важную роль играет псевдокрон WordPress. Он срабатывает при посещении сайта, поэтому на ресурсе с низкой посещаемостью очистка может произойти с задержкой. Если в панели хостинга настроен настоящий системный Cron, выполнение планировщика становится более предсказуемым.
Изменение срока через wp-config.php
Самый простой способ задать период хранения — добавить константу в файл wp-config.php:
define( 'EMPTY_TRASH_DAYS', 7 );
В этом примере записи будут автоматически удаляться примерно через семь дней после перемещения в корзину. Строку размещают до комментария /* That's all, stop editing! Happy publishing. */, чтобы она была объявлена до загрузки основных настроек WordPress.
Можно выбрать любое положительное целое число дней, например:
define( 'EMPTY_TRASH_DAYS', 1 );
Такой вариант подходит для временных проектов и сайтов, где восстановление удалённых материалов почти никогда не требуется. Для рабочего блога разумнее оставить несколько дней запаса, особенно если публикациями занимаются несколько авторов.
Не следует без проверки устанавливать значение 0 или отрицательное число в надежде полностью отключить корзину. В разных версиях WordPress и расширениях такое поведение может восприниматься по-разному. Если требуется запретить автоматическое удаление, лучше использовать значение, которое поддерживается текущей версией ядра, и проверить результат на копии сайта.
Настройка через плагин и код
Плагин удобен тем, что для изменения параметров не нужен доступ к файлам сайта. Некоторые расширения позволяют выбрать срок хранения содержимого корзины в настройках, а затем самостоятельно подключают нужные фильтры или изменяют значение системной константы. Перед установкой стоит проверить дату обновления плагина, совместимость с версией WordPress и отзывы пользователей.
У плагинного способа есть недостаток: после отключения расширения правило может перестать работать или вернуться к стандартному сроку. Кроме того, лишний плагин увеличивает количество PHP-кода и потенциальных точек для уязвимостей. Для простой задачи часто достаточно одной строки в конфигурации.
Более гибкое решение можно реализовать в functions.php дочерней темы или в собственном небольшом плагине. Например, код может удалять только записи определённого типа, учитывать автора или исключать материалы с заданным метаполем. Такой вариант требует аккуратного тестирования, потому что ошибка в запросе способна привести к удалению нужных данных.
Ручная очистка и WP-CLI
Если удаление должно происходить вручную по расписанию администратора, можно открыть раздел записей, страниц или комментариев, перейти в корзину и выбрать команду окончательного удаления. Этот метод подходит для небольших сайтов, где количество объектов невелико и решение принимается после проверки содержимого.
На сайтах с SSH-доступом удобно использовать WP-CLI. Команды позволяют работать с корзиной быстрее панели управления и применять операции к конкретным типам записей. Перед выполнением массового удаления желательно сделать резервную копию базы данных и сначала проверить список объектов в режиме, который не изменяет данные.
WP-CLI также помогает понять, работает ли планировщик и есть ли в корзине старые записи. При проблемах с автоматической очисткой можно проверить события Cron средствами соответствующего плагина или командной строки. Если задача не запускается, причина часто связана с отключённым wp-cron.php, ограничениями хостинга или ошибкой PHP.
Что происходит с медиафайлами и базой
Удаление записи и удаление файла из медиатеки — разные операции. Изображение, прикреплённое к статье, может остаться в каталоге wp-content/uploads, даже если сама запись отправлена в корзину. Поэтому автоматическая очистка записей не всегда освобождает весь объём диска.
Перед настройкой агрессивного удаления стоит проверить, как сайт использует вложения. Одно изображение может быть вставлено в несколько материалов, а файл может применяться в виджете, шаблоне или произвольном поле. Безопасное удаление медиаданных требует анализа связей, иначе на страницах появятся битые изображения.
Большой размер базы данных создают не только объекты в корзине, но и ревизии, автосохранения, спам-комментарии, временные параметры и записи от старых плагинов. Поэтому очистку корзины полезно рассматривать как одну часть обслуживания WordPress. Для резервных копий, которые хранятся отдельно от сайта, пригодятся общие рекомендации из материала о настройке VoiceMeeter Banana, посвящённого контролю конфигурации и предотвращению проблем в программной среде.
Безопасность, резервные копии и HTTPS
Автоматическое удаление не должно заменять резервное копирование. Оптимальная схема предполагает регулярную копию базы данных и файлов сайта, хранение нескольких поколений архивов и периодическую проверку восстановления. Если резервная система сохраняет базу до очистки корзины, случайно удалённый материал ещё можно вернуть.
Административная панель должна работать через HTTPS, особенно если очистка выполняется вручную или запускается с помощью внешних инструментов. Перед установкой сертификата полезно изучить руководство о том, как включить HTTPS на WordPress и проверить смешанное содержимое после переключения.
Не стоит менять файлы ядра WordPress ради настройки корзины. После обновления такие изменения будут потеряны, а иногда приведут к конфликтам. Конфигурацию лучше хранить в wp-config.php, дочерней теме или отдельном мини-плагине с понятным комментарием о назначении кода.
Оформление административной панели через CSS не влияет на удаление данных и не меняет работу Cron. Если требуется разобраться со стилями интерфейса или темой, можно обратиться к материалам о CSS для WordPress, но параметры срока хранения всё равно задаются на уровне PHP и планировщика.
Проверка работы автоматической очистки
После изменения значения EMPTY_TRASH_DAYS создайте тестовую запись, переместите её в корзину и дождитесь выполнения планировщика. Для ускоренной проверки на тестовом сайте можно использовать короткий срок, а затем вручную запустить событие Cron через инструменты администратора или WP-CLI.
Проверьте, что в корзине удаляются именно просроченные объекты, а свежие записи остаются доступными для восстановления. Также стоит посмотреть журнал ошибок сервера: проблемы с правами доступа, памятью или несовместимым плагином иногда мешают выполнению запланированной задачи.
Если сайт посещают редко, настройте настоящий Cron на хостинге и отключите зависимость от посещений. При этом важно не запускать одну и ту же задачу слишком часто: достаточно периодического вызова wp-cron.php с интервалом, подходящим для сайта.
После успешной проверки зафиксируйте выбранный срок в документации проекта. Это поможет избежать ситуации, когда другой администратор изменит настройки, не зная, что удаление является необратимым.
Проверьте резервное копирование, выберите подходящий срок хранения и настройте EMPTY_TRASH_DAYS в wp-config.php или через проверенный инструмент. Затем протестируйте работу Cron на копии сайта и только после этого применяйте правило к рабочему WordPress.