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

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

Зачем нужна автоматизация создания и удаления черновиков в WordPress

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

Ручное управление большим количеством неопубликованных записей может стать рутинной и ошибочной задачей. Автоматизация с помощью PHP-кода и планировщика задач (WP-Cron) позволяет сделать это аккуратно и прозрачно.

Автоматическое создание черновиков с WPStuff_create_draft_post

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

function wpstuff_create_draft_post($title, $content = '') {
    $new_post = array(
        'post_title'    => $title,
        'post_content'  => $content,
        'post_status'   => 'draft',
        'post_author'   => 1,
        'post_type'     => 'post',
    );

    $post_id = wp_insert_post($new_post);
    return $post_id;
}

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

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

function wpstuff_create_daily_draft_callback() {
    $date = date('Y-m-d');
    $title = 'Ежедневный черновик на ' . $date;
    $content = 'Автоматически созданный черновик для заполнения контента на ' . $date;
    wpstuff_create_draft_post($title, $content);
}
add_action('wpstuff_create_daily_draft', 'wpstuff_create_daily_draft_callback');

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

Автоматическое удаление старых черновиков с WPStuff_delete_old_drafts

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

Реализуем функцию, которая удалит все черновики старше 30 дней.

function wpstuff_delete_old_drafts($days = 30) {
    global $wpdb;
    $date_threshold = date('Y-m-d H:i:s', strtotime('-' . intval($days) . ' days'));

    $drafts = $wpdb->get_results($wpdb->prepare(
        "SELECT ID FROM {$wpdb->posts} WHERE post_status = 'draft' AND post_date < %s",
        $date_threshold
    ));

    foreach ($drafts as $draft) {
        wp_delete_post($draft->ID, true);
    }
}

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

add_action('wpstuff_delete_old_drafts_hook', function() {
    wpstuff_delete_old_drafts(30);
});

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

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

Если вы предпочитаете готовые решения, обратите внимание на плагин Clearfy Pro. Он предоставляет удобные инструменты для управления черновиками, автоматического удаления старых записей и оптимизации базы данных.

Clearfy Pro позволяет настроить автоматическую очистку черновиков по дате, а также добавить уведомления для авторов о необходимости завершить публикацию. Интеграция с WP-Cron позволяет запускать эти задачи без дополнительного вмешательства.

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

После установки и активации плагина перейдите в раздел оптимизации и найдите настройку «Удаление старых черновиков». Выберите период хранения (например, 30 дней) и активируйте функцию. Плагин будет регулярно очищать базу данных от устаревших черновиков.

Преимущества использования плагина

  • Простота настройки без написания кода;
  • Расширенные возможности оптимизации сайта;
  • Поддержка и обновления от разработчиков;
  • Интеграция с другими инструментами Clearfy Pro.

Советы по безопасности и производительности при автоматизации черновиков

При использовании кастомных функций и WP-Cron важно следить за безопасностью и производительностью. Вот несколько рекомендаций:

  • Проверяйте права доступа. Функции создания и удаления записей должны выполняться с учётом ролей пользователей и безопасности.
  • Избегайте дублирования. При создании ежедневных черновиков проверяйте, что такой черновик уже не существует, чтобы не создавать дубликаты.
  • Оптимизируйте запросы. Используйте прямые запросы к базе данных с осторожностью и с подготовленными выражениями.
  • Контролируйте нагрузку. Не запускайте тяжелые задачи в пиковые часы, старайтесь распределять нагрузку равномерно.

Пример проверки на существование черновика перед созданием

function wpstuff_create_daily_draft_callback() {
    $date = date('Y-m-d');
    $title = 'Ежедневный черновик на ' . $date;

    $existing = get_page_by_title($title, OBJECT, 'post');
    if (!$existing) {
        $content = 'Автоматически созданный черновик для заполнения контента на ' . $date;
        wpstuff_create_draft_post($title, $content);
    }
}

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

Заключение

Автоматизация работы с черновиками в WordPress — это отличный способ упростить рутинные задачи контент-менеджмента и поддерживать чистоту базы данных. Используя функции WPStuff_create_draft_post и WPStuff_delete_old_drafts, а также планировщик WP-Cron, можно настроить надежный механизм создания и удаления черновиков. В качестве альтернативы и дополнения отлично подходит плагин Clearfy Pro, который позволит упростить процесс и добавить дополнительные возможности оптимизации.

Автоматическое создание копий постов в WordPress
26.12.2025
Как создать автоматический редирект в WordPress по условиям
14.02.2026
Как удалить кэш плагинов в WordPress при проблемном очищении
17.12.2025
Как автоматически удалять старые черновики в WordPress
30.03.2026
Как создать автоматический импорт контента из внешних источников в WordPress
13.01.2026