Ведение сайта на WordPress часто сопровождается накоплением большого количества черновиков. Они занимают место в базе данных, замедляют работу сайта и затрудняют управление контентом. В этой статье мы подробно рассмотрим, как автоматически удалять старые черновики в WordPress, используя как готовые плагины, так и собственные решения на PHP.
Почему важно удалять старые черновики в WordPress
Черновики – это записи, которые были созданы, но не опубликованы. Со временем их может накопиться сотни и даже тысячи, особенно на больших сайтах с несколькими авторами. Это приводит к:
- Увеличению размера базы данных;
- Замедлению запросов к базе данных;
- Сложностям при управлении контентом;
- Увеличению времени резервного копирования.
Регулярная очистка черновиков помогает поддерживать производительность сайта на хорошем уровне и облегчает работу редакторов.
Автоматическое удаление черновиков с помощью плагина Clearfy Pro
Одним из популярных решений для оптимизации WordPress является плагин Clearfy Pro. Он включает в себя модуль для автоматической очистки базы данных, в том числе удаления старых черновиков.
Настройка достаточно проста:
- Установите и активируйте Clearfy Pro.
- Перейдите в раздел «Оптимизация» → «Удаление мусора».
- Включите опцию «Удалять черновики старше N дней» и задайте нужный период.
- Сохраните настройки и запустите оптимизацию вручную или настройте автозапуск через CRON.
Преимущество Clearfy Pro – комплексный подход к оптимизации и наличие дополнительных функций безопасности и производительности.
Как написать свой код для автоматического удаления старых черновиков
Если вы предпочитаете контролировать процесс самостоятельно, можно добавить в файл functions.php вашей темы или создать небольшой плагин с таким кодом:
function wpcodes_delete_old_drafts() {
global $wpdb;
$days = 30; // Удалять черновики старше 30 дней
$date = date('Y-m-d H:i:s', strtotime('-' . $days . ' days'));
$drafts = $wpdb->get_results($wpdb->prepare(
"SELECT ID FROM $wpdb->posts WHERE post_status = 'draft' AND post_date < %s",
$date
));
foreach ($drafts as $draft) {
wp_delete_post($draft->ID, true); // true - принудительное удаление
}
}
// Запускаем очистку раз в сутки
if (!wp_next_scheduled('wpcodes_daily_delete_old_drafts')) {
wp_schedule_event(time(), 'daily', 'wpcodes_daily_delete_old_drafts');
}
add_action('wpcodes_daily_delete_old_drafts', 'wpcodes_delete_old_drafts');Этот код выполняет следующие задачи:
- Определяет черновики, созданные более 30 дней назад;
- Удаляет их принудительно из базы данных;
- Автоматически запускается раз в сутки с помощью WP-Cron.
Вы можете изменить число дней в переменной $days по своему усмотрению.
Пояснения по безопасности и производительности
При работе с WP-Cron важно учитывать, что события могут запускаться только при посещении сайта, что не всегда удобно для сайтов с низкой посещаемостью. Для надежности можно настроить системный CRON на сервере, который будет триггерить WP-Cron.
Также убедитесь, что удаление происходит только для черновиков, чтобы избежать потери важного контента.
Использование WP-CLI для массового удаления черновиков
Для тех, кто предпочитает командную строку, WordPress предлагает инструмент WP-CLI. С его помощью можно быстро и безопасно удалить старые черновики без написания кода.
Команда для удаления черновиков старше 30 дней выглядит так:
wp post delete $(wp post list --post_type='post' --post_status='draft' --date_query_column=post_date --date_query_before='30 days ago' --format=ids) --forceЭта команда сначала получает список ID черновиков старше 30 дней, а затем удаляет их принудительно. Для автоматизации можно добавить запуск этой команды в cron на сервере.
Дополнительные рекомендации и плагины для управления черновиками
Помимо Clearfy Pro, есть и другие плагины, которые помогут контролировать черновики:
- WP Bulk Delete – позволяет удалять записи по разным критериям, включая статус и дату.
- Advanced Database Cleaner – комплексно очищает базу данных, включая черновики и ревизии.
- WP-Optimize – оптимизирует базу данных и может автоматически удалять старые черновики.
Выбор зависит от ваших задач и предпочтений. Например, WP Bulk Delete хорошо подходит для точечного удаления, а WP-Optimize – для регулярной комплексной оптимизации.
Пример использования WP Bulk Delete для удаления черновиков старше 60 дней
После установки и активации плагина:
- Перейдите в меню WP Bulk Delete → Bulk Delete Posts.
- Выберите тип записи «Посты» и статус «Черновик».
- В разделе «Дата» установите «Старше 60 дней».
- Запустите удаление.
Также доступна настройка автоматического удаления по расписанию.
Итоги и советы по автоматическому удалению черновиков
Автоматизация удаления старых черновиков помогает поддерживать базу данных в порядке и улучшать производительность WordPress. Вариантов реализации несколько:
- Использование плагинов, как Clearfy Pro, WP Bulk Delete и WP-Optimize;
- Кастомные решения на PHP с использованием WP-Cron;
- Командная строка через WP-CLI для опытных пользователей.
Рекомендуется регулярно проверять настройки и проводить резервное копирование перед массовым удалением данных. Так вы защитите себя от случайной потери важного контента.
Если хотите получить качественный комплексный инструмент для оптимизации, обратите внимание на Clearfy Pro. Он не только удалит старые черновики, но и улучшит безопасность и скорость вашего сайта.