Черновики в WordPress со временем накапливаются и могут занимать значительное место в базе данных, замедляя работу сайта и усложняя администрирование. Удаление ненужных черновиков — важная задача для поддержания чистоты и производительности сайта. В этой статье мы рассмотрим, как удалить черновики в WordPress без использования плагинов, используя собственные функции и запросы к базе данных.
Почему важно удалять черновики в WordPress
Черновики — это сохранённые версии записей и страниц, которые не опубликованы. Они удобны для работы с контентом, но при большом количестве могут:
- Загромождать базу данных, увеличивая её размер.
- Замедлять работу административной панели, особенно при большом объёме записей.
- Создавать путаницу в управлении контентом.
Регулярное удаление старых и ненужных черновиков помогает избежать этих проблем и поддерживать сайт в оптимальном состоянии.
Удаление черновиков вручную через phpMyAdmin
Самый быстрый и прямой способ — удалить черновики напрямую из базы данных через phpMyAdmin или любой другой инструмент управления базой данных.
Для этого выполните SQL-запрос:
DELETE FROM wp_posts WHERE post_status = 'draft';
Обратите внимание, что префикс wp_ в имени таблицы может отличаться в вашей установке — используйте актуальный префикс.
Этот запрос удалит все записи с статусом «черновик». Если у вас есть черновики других типов записей (например, пользовательские типы), можно добавить условие по типу:
DELETE FROM wp_posts WHERE post_status = 'draft' AND post_type = 'post';
Перед выполнением запроса обязательно сделайте резервную копию базы данных, чтобы избежать потери важных данных.
Автоматическое удаление черновиков с помощью пользовательской функции
Если вы хотите регулярно очищать черновики без ручного вмешательства, можно добавить функцию в файл functions.php вашей темы или в отдельный плагин. Например, функция wpfront_delete_old_drafts() удалит черновики старше определённого количества дней.
function wpfront_delete_old_drafts() {
global $wpdb;
$days = 30; // Удалять черновики старше 30 дней
$date = date('Y-m-d H:i:s', strtotime('-' . $days . ' days'));
$table = $wpdb->posts;
$result = $wpdb->query($wpdb->prepare(
"DELETE FROM $table WHERE post_status = %s AND post_modified < %s",
'draft', $date
));
return $result;
}
Эта функция удаляет все черновики, которые не менялись более 30 дней. Вы можете изменить параметр $days под свои нужды.
Запуск функции по расписанию (WP-Cron)
Чтобы функция выполнялась регулярно, добавьте задачу в планировщик WordPress:
if (!wp_next_scheduled('wpfront_delete_old_drafts_event')) {
wp_schedule_event(time(), 'daily', 'wpfront_delete_old_drafts_event');
}
add_action('wpfront_delete_old_drafts_event', 'wpfront_delete_old_drafts');
Этот код запустит очистку черновиков один раз в сутки автоматически.
Удаление черновиков через WP-CLI
Если у вас есть доступ к командной строке и установлен WP-CLI, можно быстро удалить черновики командой:
wp post delete $(wp post list --post_status=draft --format=ids)
Эта команда выведет список ID черновиков и удалит их. Это удобный инструмент для опытных пользователей и серверных администраторов.
Полезные плагины для управления черновиками
Хотя в статье мы ориентировались на решения без плагинов, есть плагины, которые могут помочь управлять черновиками более гибко и удобно:
- Clearfy Pro — содержит инструменты для оптимизации базы данных и удаления ненужных данных, включая черновики.
- WPRemark — плагин для управления комментариями и черновиками с расширенными возможностями.
Использование плагина может быть удобным, если вы не хотите самостоятельно писать код или работать с базой данных напрямую.
Рекомендации по безопасности и резервному копированию
Перед удалением большого количества черновиков или любых данных из базы данных всегда делайте полное резервное копирование сайта и базы. Используйте плагины для резервного копирования или экспортируйте базу данных вручную через phpMyAdmin.
Также тестируйте все запросы и функции на тестовом окружении, чтобы избежать случайной потери нужного контента.
Итоги
Удаление черновиков в WordPress без плагинов — вполне выполнимая задача, требующая минимальных знаний SQL и PHP. Вы можете быстро очистить базу данных через phpMyAdmin, автоматизировать процесс с помощью пользовательских функций и WP-Cron, а также воспользоваться командной строкой через WP-CLI. Это помогает поддерживать производительность сайта и упрощает работу с контентом.