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

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

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

Черновики позволяют сохранять незавершённые записи без публикации, давая возможность вернуться к ним позже. Однако в активных проектах их количество может быстро расти, что замедляет работу и усложняет навигацию. Автоматизация поможет:

  • Своевременно создавать шаблоны новых записей.
  • Удалять устаревшие или заброшенные черновики.
  • Оптимизировать базу данных и ускорить работу админки.

Рассмотрим практические методы реализации.

Автоматическое создание черновиков с помощью кода

Иногда нужно регулярно создавать заготовки записей — например, для новостного сайта или каталога, где нужно подготавливать материалы заранее.

Добавим функцию в файл functions.php вашей темы или в кастомный плагин:

function wpcatalog_auto_create_draft() {
  $post_data = array(
    'post_title'    => 'Новый черновик ' . date('d.m.Y H:i'),
    'post_content'  => '',
    'post_status'   => 'draft',
    'post_author'   => get_current_user_id(),
    'post_type'     => 'post',
  );
  wp_insert_post($post_data);
}

// Запускать функцию через WP Cron, например, ежедневно
if (!wp_next_scheduled('wpcatalog_daily_draft_creation')) {
  wp_schedule_event(time(), 'daily', 'wpcatalog_daily_draft_creation');
}
add_action('wpcatalog_daily_draft_creation', 'wpcatalog_auto_create_draft');

Этот код создаёт новый черновик с текущей датой и временем в названии, автоматически ежедневно срабатывая через WP Cron. Вы можете изменить частоту или условия по своему усмотрению.

Пояснение и доработка

При необходимости можно расширить post_data, добавив категории, метки или кастомные поля. Для кастомных типов записей достаточно поменять post_type.

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

Удаление устаревших черновиков — важный этап, особенно если их много и они не нужны. Рассмотрим, как это сделать программно.

function wpcatalog_delete_old_drafts() {
  global $wpdb;
  $days = 30; // удалять черновики старше 30 дней
  $date_threshold = 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_modified < %s",
    $date_threshold
  ));

  foreach ($drafts as $draft_id) {
    wp_delete_post($draft_id, true); // true - безвозвратно
  }
}

// Запускать раз в неделю
if (!wp_next_scheduled('wpcatalog_weekly_delete_old_drafts')) {
  wp_schedule_event(time(), 'weekly', 'wpcatalog_weekly_delete_old_drafts');
}
add_action('wpcatalog_weekly_delete_old_drafts', 'wpcatalog_delete_old_drafts');

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

Безопасность и производительность

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

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

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

  • WP Auto Draft Cleaner — плагин для автоматического удаления старых черновиков. Позволяет настроить период хранения и запускать очистку по расписанию.
  • Auto Post Scheduler — может автоматически создавать и публиковать черновики по заданным правилам, удобен для регулярного контент-плана.
  • Clearfy Pro (https://wpshop.ru/clearfy-pro/?utm_source=wpcatalog.ru&utm_medium=article&utm_campaign=kak-avtomatizirovat-sozdanie-i-udaleniye-chernovikov-v-wordpress) — комплексный плагин оптимизации WordPress, включающий функции управления контентом и базой данных, включая очистку черновиков.

Как выбрать плагин

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

Практические советы по интеграции автоматизации

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

  • Обязательно делайте резервные копии перед массовыми удалениями.
  • Используйте WP Cron для планирования задач, но проверяйте, что он работает корректно на вашем хостинге.
  • Логируйте действия автоматизации — например, записывайте удалённые ID в файл или в базу.
  • Если автоматизация влияет на пользовательский интерфейс, добавьте возможность отключать её через админку.

Вот пример функции логирования удалённых черновиков:

function wpcatalog_log_deleted_draft($post_id) {
  $log_file = WP_CONTENT_DIR . '/wpcatalog_deleted_drafts.log';
  $entry = date('Y-m-d H:i:s') . " - Deleted draft ID: " . $post_id . "\n";
  file_put_contents($log_file, $entry, FILE_APPEND);
}

// В теле функции удаления вызвать:
// wpcatalog_log_deleted_draft($draft_id);

Выводы

Автоматизация создания и удаления черновиков помогает поддерживать порядок в админке, экономит время и снижает нагрузку на базу данных. Для решения задачи можно использовать как собственный код с WP Cron, так и готовые плагины, например, Clearfy Pro из каталога WPShop. Главное — тщательно тестировать и подбирать параметры под конкретный сайт и задачи.

Создание динамического фильтра в WordPress для каталога
22.12.2025
WooCommerce: автоматическое отключение товаров при нулевом остатке
20.05.2026
Как создать динамические шорткоды в WordPress: практическое руководство
15.11.2025
Как удалить повторяющиеся товары в WooCommerce без плагинов
24.05.2026
Автоматическое удаление старых медиафайлов в WordPress
03.04.2026