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

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

Почему важна автоматизация черновиков в WordPress

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

  • Снизить нагрузку на редакторов и авторов;
  • Поддерживать порядок в списке записей;
  • Обеспечить своевременное удаление устаревших черновиков;
  • Автоматически создавать заготовки для публикаций по расписанию или событию.

Рассмотрим, как реализовать эти задачи с помощью кода и полезных плагинов.

Автоматическое создание черновиков: практические примеры

Вы можете создавать черновики программно, например, для регулярных публикаций или для подготовки шаблонов. Пример функции для wpnote_create_draft, которая создаёт черновик с заданным заголовком и содержимым:

function wpnote_create_draft($title, $content = '') {
    $draft = array(
        'post_title'    => $title,
        'post_content'  => $content,
        'post_status'   => 'draft',
        'post_author'   => get_current_user_id(),
        'post_type'     => 'post',
    );
    $post_id = wp_insert_post($draft);
    return $post_id;
}

Пример использования — автоматическое создание черновика для еженедельной рубрики:

add_action('wp_loaded', function() {
    if (!get_option('wpnote_weekly_draft_created')) {
        wpnote_create_draft('Еженедельный обзор');
        update_option('wpnote_weekly_draft_created', 1);
    }
});

Для более сложных сценариев можно использовать WP-Cron, чтобы создавать черновики по расписанию.

Создание черновиков по расписанию через WP-Cron

Добавим задачу, которая будет запускаться раз в неделю и создавать черновик:

function wpnote_schedule_weekly_draft() {
    if (!wp_next_scheduled('wpnote_weekly_draft_event')) {
        wp_schedule_event(time(), 'weekly', 'wpnote_weekly_draft_event');
    }
}
add_action('wp', 'wpnote_schedule_weekly_draft');

add_action('wpnote_weekly_draft_event', function() {
    wpnote_create_draft('Еженедельный обзор от ' . date('d.m.Y'));
});

WP-Cron автоматически обработает создание черновика каждую неделю.

Автоматическое удаление черновиков: очистка базы и поддержание порядка

Черновики могут накапливаться, занимать место и создавать хаос. Удаление устаревших черновиков поможет избежать этого.

Удаление черновиков старше 30 дней

Пример функции wpnote_delete_old_drafts, которая удаляет черновики старше 30 дней:

function wpnote_delete_old_drafts() {
    global $wpdb;
    $days = 30;
    $date = date('Y-m-d H:i:s', strtotime('-' . $days . ' days'));
    $drafts = $wpdb->get_col($wpdb->prepare(
        "SELECT ID FROM {$wpdb->posts} WHERE post_status = 'draft' AND post_date < %s",
        $date
    ));
    foreach ($drafts as $draft_id) {
        wp_delete_post($draft_id, true);
    }
}

// Запускаем по расписанию - раз в день
if (!wp_next_scheduled('wpnote_daily_delete_drafts')) {
    wp_schedule_event(time(), 'daily', 'wpnote_daily_delete_drafts');
}
add_action('wpnote_daily_delete_drafts', 'wpnote_delete_old_drafts');

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

Плагины для автоматизации управления черновиками

Если вы предпочитаете использовать готовые решения, рекомендую обратить внимание на следующие плагины:

  • Clearfy Pro — содержит функции оптимизации базы данных, в том числе очистку черновиков;
  • My Popup — позволяет создавать всплывающие уведомления, которые можно использовать для напоминаний и управления контентом;
  • WPRemark — автоматизация отзывов, но также подходит для работы с пользовательским контентом и черновиками.

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

Советы по безопасной автоматизации

При автоматизации управления черновиками важно соблюдать несколько правил:

  • Всегда делайте резервные копии базы данных перед массовым удалением записей;
  • Тестируйте код на тестовом сайте;
  • Используйте WP-Cron для регулярных задач, избегая запуска тяжелых операций при каждой загрузке страницы;
  • Логируйте действия автоматизации для последующего анализа;
  • При необходимости добавляйте уведомления для администраторов о выполненных действиях.

Расширение функционала: создание черновиков с метаданными и таксономиями

Иногда нужно создавать черновики с определёнными метаданными или категориями. Вот пример расширенной функции:

function wpnote_create_draft_with_meta($title, $content = '', $meta = [], $categories = []) {
    $draft = array(
        'post_title'    => $title,
        'post_content'  => $content,
        'post_status'   => 'draft',
        'post_author'   => get_current_user_id(),
        'post_type'     => 'post',
        'post_category' => $categories,
    );
    $post_id = wp_insert_post($draft);
    if ($post_id && !is_wp_error($post_id)) {
        foreach ($meta as $key => $value) {
            update_post_meta($post_id, $key, $value);
        }
    }
    return $post_id;
}

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

Как избежать конфликтов плагинов в WordPress: практические решения и советы
15.12.2025
Как использовать REST API для получения данных в WordPress
05.12.2025
WooCommerce: отладка проблем с распоряжением заказами и их статусами
17.04.2026
WooCommerce: Автоматическое изменение скидки в зависимости от размера товара
09.06.2026
Как использовать WPCommunity для создания форума на WordPress
23.02.2026