Как автоматизировать удаление старых черновиков в 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 — простое и эффективное решение для поддержания чистоты базы данных и улучшения производительности сайта. Используйте представленный код или надёжные плагины, настраивайте периодичность и регулярно контролируйте результаты. Это позволит сосредоточиться на развитии бизнес-сайта, не отвлекаясь на рутинные задачи по обслуживанию.

Как автоматизировать отправку email-уведомлений об обновлениях в WordPress
29.09.2026
Как автоматизировать отправку новых заказов WooCommerce в WhatsApp
03.09.2026
Как исключить текущую страницу из canonical в WordPress без поломки SEO
28.09.2026
Как использовать мета-заголовки для улучшения SEO в WooCommerce
11.09.2026
Как создать собственный шорткод в WordPress с примерами кода
12.09.2026
×
-15%
на премиум-тему
Bono

Создай магазин мечты
на WordPress!

↓ ↓ ↓ ↓ ↓
Купить со скидкой »