Как автоматизировать удаление старых черновиков в WordPress

|

Ведение сайта на WordPress часто приводит к накоплению большого количества черновиков — записей, которые были созданы, но не опубликованы. Со временем они занимают место в базе данных, замедляют работу сайта и усложняют администрирование. В этой статье мы подробно разберём, как автоматизировать удаление старых черновиков в WordPress, чтобы поддерживать базу данных в чистоте и повысить производительность вашего сайта.

Почему важно удалять старые черновики в WordPress

Черновики — это полезный инструмент для работы над контентом, однако неиспользуемые и забытые записи могут негативно сказаться на сайте. Они:

Регулярное удаление старых черновиков помогает поддерживать порядок и избавляет от ненужных данных.

Как определить, какие черновики удалять

Важно понимать, что не все черновики стоит удалять без разбора. Обычно удаляют записи, которые не обновлялись и не редактировались длительное время, например, более 30, 60 или 90 дней назад. Критерии могут быть разными в зависимости от специфики проекта, но основной подход — удалять «заброшенные» записи, которые вряд ли будут использованы.

Для этого используем дату последнего изменения записи (post_modified) и тип записи (post_status = draft).

Автоматизация удаления старых черновиков с помощью кода

Создание функции для удаления черновиков старше 30 дней

Чтобы автоматизировать процесс, мы напишем функцию, которая будет искать и удалять старые черновики. Далее подключим её к CRON-задаче, чтобы запускать автоматически.

function wpbusiness_delete_old_drafts() {
    global $wpdb;
    // Определяем дату, старше которой удаляем черновики
    $date_threshold = date('Y-m-d H:i:s', strtotime('-30 days'));

    // Получаем ID всех черновиков старше порога
    $drafts = $wpdb->get_col( $wpdb->prepare(
        "SELECT ID FROM {$wpdb->posts} WHERE post_status = 'draft' AND post_modified < %s",
        $date_threshold
    ));

    if (empty($drafts)) {
        return;
    }

    // Удаляем по одному
    foreach ($drafts as $post_id) {
        wp_delete_post($post_id, true); // true - удалить без возможности восстановления
    }
}

Регистрация задачи для автоматического запуска

Теперь добавим CRON-задачу, которая будет запускать нашу функцию раз в сутки.

function wpbusiness_schedule_delete_old_drafts() {
    if (!wp_next_scheduled('wpbusiness_daily_delete_old_drafts')) {
        wp_schedule_event(time(), 'daily', 'wpbusiness_daily_delete_old_drafts');
    }
}
add_action('wp', 'wpbusiness_schedule_delete_old_drafts');

add_action('wpbusiness_daily_delete_old_drafts', 'wpbusiness_delete_old_drafts');

Этот код добавьте в файл functions.php вашей темы или в отдельный плагин. Он будет ежедневно запускать функцию удаления черновиков старше 30 дней.

Использование плагинов для управления черновиками

Если вы не хотите писать код, для автоматизации удаления черновиков подойдут плагины:

Эти плагины помогут упростить задачу и подойдут для пользователей, предпочитающих графический интерфейс.

Дополнительные советы по оптимизации базы данных

Удаление старых черновиков — часть комплексной оптимизации базы данных. Рекомендуется также:

Такой комплексный подход обеспечит стабильную и быструю работу сайта.

Как контролировать и проверять результаты

После настройки автоматического удаления полезно проверять результаты и при необходимости корректировать параметры. Для этого можно:

Регулярный контроль поможет избежать случайного удаления нужных данных и оптимизировать процесс.

Заключение

Автоматизация удаления старых черновиков в WordPress — простое и эффективное решение для поддержания чистоты базы данных и улучшения производительности сайта. Используйте представленный код или надёжные плагины, настраивайте периодичность и регулярно контролируйте результаты. Это позволит сосредоточиться на развитии бизнес-сайта, не отвлекаясь на рутинные задачи по обслуживанию.

Как автоматизировать создание и обновление календаря мероприятий в WordPress
12.03.2026
Как отключить AJAX-загрузку товаров в WooCommerce для улучшения совместимости
01.06.2026
Как использовать хуки WooCommerce для автоматизации управления заказами
03.07.2026
Как сделать автоматический импорт данных в WordPress из Excel с примерами кода
30.01.2026
Автоматическое отключение неиспользуемых плагинов WordPress по расписанию
04.06.2026
×
Сделай свой сайт крутым!

Скидка -20% на премиум плагины WordPress

Выбрать плагин сейчас ⋙