wpcodes.ru wordpress WP Codеs

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

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

Зачем нужна автоматизация работы с черновиками в WordPress?

Черновики в WordPress — это незавершённые записи, которые не видны посетителям сайта. Автоматизация работы с ними помогает:

  • организовать процесс подготовки контента, создавая шаблоны и заготовки;
  • очищать базу данных от старых неиспользуемых черновиков, улучшая производительность;
  • управлять большим объёмом контента при работе нескольких авторов;
  • интегрировать контент с внешними сервисами и автоматически сохранять промежуточные версии.

Теперь рассмотрим, как на практике решать эти задачи.

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

Создание шаблона черновика через WP REST API

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

function wpcodes_create_scheduled_draft() {
    $post_data = array(
        'post_title'    => 'Шаблон новой статьи',
        'post_content'  => 'Добавьте сюда основной текст статьи...',
        'post_status'   => 'draft',
        'post_author'   => 1,
        'post_type'     => 'post',
    );

    // Проверяем, не создан ли уже такой черновик
    $existing = get_posts(array(
        'post_type'   => 'post',
        'post_status' => 'draft',
        'title'       => 'Шаблон новой статьи'
    ));

    if (empty($existing)) {
        wp_insert_post($post_data);
    }
}

// Запускаем по расписанию каждую неделю
if (!wp_next_scheduled('wpcodes_create_draft_hook')) {
    wp_schedule_event(time(), 'weekly', 'wpcodes_create_draft_hook');
}
add_action('wpcodes_create_draft_hook', 'wpcodes_create_scheduled_draft');

Такой код добавьте в файл functions.php вашей темы или в отдельный плагин. Он будет создавать шаблонный черновик раз в неделю, если он ещё не создан.

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

Если предпочитаете готовые решения, обратите внимание на плагины:

  • Auto Draft Cleaner — помогает управлять черновиками, включая автоматическое удаление;
  • Expert Review — расширенный плагин для управления контентом и черновиками с возможностью кастомизации.

Они позволят значительно упростить процесс без необходимости писать код.

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

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

Накопление черновиков, особенно на больших сайтах, может приводить к увеличению размера базы данных и замедлению работы админ-панели. Поэтому важно периодически удалять неактуальные черновики.

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

Ниже пример функции, которая удаляет черновики старше 30 дней. Добавьте этот код в functions.php или в плагин:

function wpcodes_delete_old_drafts() {
    global $wpdb;
    $days = 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_date < %s",
        $date_threshold
    ));

    if (!empty($drafts)) {
        foreach ($drafts as $draft_id) {
            wp_delete_post($draft_id, true); // true — удалять безвозвратно
        }
    }
}

// Запускаем очистку раз в сутки
if (!wp_next_scheduled('wpcodes_delete_old_drafts_hook')) {
    wp_schedule_event(time(), 'daily', 'wpcodes_delete_old_drafts_hook');
}
add_action('wpcodes_delete_old_drafts_hook', 'wpcodes_delete_old_drafts');

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

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

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

Дополнительные советы и лайфхаки по работе с черновиками

Добавление кастомных полей в черновики

Если ваши черновики должны содержать дополнительные метаданные (например, дату публикации, категории или комментарии редакторов), используйте функцию update_post_meta при создании записи:

function wpcodes_create_draft_with_meta() {
    $post_id = wp_insert_post(array(
        'post_title'  => 'Заготовка с метаданными',
        'post_status' => 'draft',
        'post_type'   => 'post'
    ));

    if ($post_id) {
        update_post_meta($post_id, '_wpcodes_review_status', 'pending');
        update_post_meta($post_id, '_wpcodes_editor_notes', 'Добавьте ваши комментарии здесь');
    }
}

Это поможет структурировать работу с черновиками.

Автоматизация уведомлений об обновлениях черновиков

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

function wpcodes_notify_on_draft_update($new_status, $old_status, $post) {
    if ($new_status === 'draft' && $old_status !== 'draft' && $post->post_type === 'post') {
        wp_mail('editor@example.com', 'Обновлён черновик', 'Проверьте новый черновик: ' . get_edit_post_link($post->ID));
    }
}
add_action('transition_post_status', 'wpcodes_notify_on_draft_update', 10, 3);

Это простой способ держать команду в курсе.

Заключение

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

×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее