Черновики в WordPress — это важный инструмент для планирования и подготовки контента, однако их накопление может привести к захламлению базы данных и замедлению работы сайта. В этой статье мы разберём, как автоматизировать процессы создания и удаления черновиков в WordPress с помощью кода и плагинов. Это позволит оптимизировать рабочий процесс и поддерживать чистоту в админ-панели.
Зачем нужна автоматизация работы с черновиками в WordPress
Ручное создание и удаление черновиков занимает время и не всегда эффективно, особенно на крупных сайтах с большим количеством авторов. Автоматизация помогает:
- Своевременно создавать шаблоны или заготовки для постоянных рубрик и тем.
- Удалять устаревшие и забытые черновики, освобождая место в базе данных.
- Поддерживать порядок и ускорять работу админ-панели.
В итоге вы получаете более организованную систему управления контентом без лишних действий.
Автоматическое создание черновиков с помощью WPINC_forge_drafts()
Если вы регулярно публикуете схожие по структуре статьи, удобно предварительно создавать черновики с базовой разметкой и метаданными. Ниже пример функции, которая создаёт новый черновик с заданным заголовком и контентом. Эту функцию можно запускать по расписанию с помощью cron.
function WPINC_forge_drafts($title = 'Новый черновик', $content = '') {
$post_data = array(
'post_title' => $title,
'post_content' => $content,
'post_status' => 'draft',
'post_author' => get_current_user_id(),
'post_type' => 'post',
);
// Проверяем, нет ли уже такого черновика
$existing = get_posts(array(
'title' => $title,
'post_status' => 'draft',
'post_type' => 'post',
'numberposts' => 1
));
if(empty($existing)) {
wp_insert_post($post_data);
}
}Для запуска по расписанию можно использовать плагин Clearfy Pro, который расширяет штатный WP-Cron и позволяет создавать задачи с гибкими условиями.
Автоматическое удаление черновиков по времени с WPINC_cleanup_old_drafts()
Частая проблема — скопление старых черновиков, которые авторы забывают удалить. Чтобы избежать этого, можно написать функцию для удаления черновиков старше определённого срока.
function WPINC_cleanup_old_drafts($days = 30) {
$args = array(
'post_type' => 'post',
'post_status' => 'draft',
'date_query' => array(
array(
'column' => 'post_modified_gmt',
'before' => "$days days ago",
),
),
'posts_per_page' => -1
);
$old_drafts = get_posts($args);
foreach ($old_drafts as $draft) {
wp_delete_post($draft->ID, true); // true для полного удаления
}
}Эту функцию также удобно запускать по cron, например, раз в неделю. Если вы используете Clearfy Pro, настройка периодических задач значительно упростится.
Пример создания расписания cron для удаления черновиков
Добавьте в functions.php следующий код для регистрации события и привязки функции:
if (!wp_next_scheduled('wpinc_cleanup_old_drafts_event')) {
wp_schedule_event(time(), 'weekly', 'wpinc_cleanup_old_drafts_event');
}
add_action('wpinc_cleanup_old_drafts_event', function() {
WPINC_cleanup_old_drafts(30);
});Так вы будете автоматически очищать черновики старше 30 дней каждую неделю.
Использование плагинов для автоматизации управления черновиками
Если вы предпочитаете не писать код, можно использовать готовые плагины:
- Auto Draft Cleanup — удаляет черновики старше определённого срока автоматически.
- WP Scheduled Posts — позволяет планировать автоматическое создание и публикацию черновиков.
- Clearfy Pro — расширяет возможности WP-Cron, включая удобное создание и управление расписаниями задач.
Эти плагины помогут быстро настроить необходимые процессы без глубоких знаний программирования.
Советы по безопасной автоматизации и оптимизации
При автоматизации важно учитывать несколько моментов:
- Резервное копирование: перед массовым удалением черновиков убедитесь, что есть резервные копии сайта.
- Логирование: ведите журнал удалённых постов для возможности восстановления в случае ошибки.
- Проверка прав: функции должны запускаться с учётом ролей пользователей, чтобы избежать удаления чужого контента.
- Тестирование: всегда проверяйте код на тестовом сайте перед внедрением в продакшен.
Соблюдение этих правил поможет избежать потери данных и сбоев.
Заключение
Автоматизация создания и удаления черновиков в WordPress — мощный способ упростить управление контентом. С помощью простых функций на PHP и плагинов, таких как Clearfy Pro, вы сможете сделать процессы управления черновиками быстрыми и безопасными, что особенно важно для крупных проектов и командной работы.