Как удалить черновики в WordPress без плагинов

Черновики в 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. Это помогает поддерживать производительность сайта и упрощает работу с контентом.

Автоматическое отключение внешних embed-контентов в WordPress для ускорения сайта
19.03.2026
Как использовать REST API в WordPress для создания собственных настроек
25.11.2025
WooCommerce: автоматическое отключение вариантов доставки при отсутствии товаров на складе
11.05.2026
WooCommerce: автоматическое отключение вариантов доставки при отсутствии товаров на складе
16.06.2026
Как создать автоматический импорт контента из внешнего источника в WordPress
26.02.2026