Управление черновиками в WordPress — одна из задач, которые могут занимать много времени при ведении большого сайта или блога. Особенно если нужно регулярно создавать временные записи для тестирования, планирования контента или автоматического удаления устаревших черновиков. В этой статье мы рассмотрим, как автоматизировать создание и удаление черновиков в WordPress с помощью кода и плагинов.
Зачем нужна автоматизация черновиков в WordPress
Часто блогеры и администраторы сайтов создают черновики для подготовки будущих публикаций, но с течением времени некоторые из них становятся неактуальными и засоряют базу данных. Автоматизация позволяет:
- Регулярно создавать шаблонные черновики для быстрого заполнения контентом.
- Автоматически удалять устаревшие или неиспользуемые черновики, освобождая место и снижая нагрузку на базу данных.
- Сократить ручной труд и минимизировать ошибки.
Автоматическое создание черновиков с помощью WPManual_create_draft()
Давайте создадим функцию, которая будет автоматически создавать черновик с заданными параметрами. Такой черновик можно использовать как шаблон или для планирования публикаций.
function wpmanual_create_draft($title, $content = '', $author_id = 1) {
$draft = array(
'post_title' => $title,
'post_content' => $content,
'post_status' => 'draft',
'post_author' => $author_id,
'post_type' => 'post'
);
$post_id = wp_insert_post($draft);
return $post_id;
}Эта функция принимает заголовок, содержимое и ID автора. Пример использования:
$draft_id = wpmanual_create_draft('Автоматический черновик', 'Текст для будущей публикации');
if ($draft_id) {
echo 'Черновик создан с ID: ' . $draft_id;
}Вы можете вызывать эту функцию из cron-задачи для регулярного создания черновиков.
Настройка cron для создания черновиков
Чтобы запускать создание черновика автоматически, зарегистрируем собственное событие в WordPress cron:
function wpmanual_schedule_draft_creation() {
if (!wp_next_scheduled('wpmanual_create_draft_event')) {
wp_schedule_event(time(), 'daily', 'wpmanual_create_draft_event');
}
}
add_action('wp', 'wpmanual_schedule_draft_creation');
add_action('wpmanual_create_draft_event', function() {
wpmanual_create_draft('Автоматический ежедневный черновик');
});Этот код создаст по одному черновику в день с указанным заголовком.
Автоматическое удаление устаревших черновиков с помощью WPManual_delete_old_drafts()
Через некоторое время количество черновиков может стать слишком большим. Удалим все черновики старше 30 дней для оптимизации базы данных.
function wpmanual_delete_old_drafts($days = 30) {
global $wpdb;
$date_threshold = date('Y-m-d H:i:s', strtotime("-{$days} days"));
$drafts = $wpdb->get_results($wpdb->prepare(
"SELECT ID FROM {$wpdb->posts} WHERE post_status = 'draft' AND post_date < %s",
$date_threshold
));
if ($drafts) {
foreach ($drafts as $draft) {
wp_delete_post($draft->ID, true); // true - удаление без перемещения в корзину
}
}
}Подключим эту функцию к cron-заданию для еженедельного запуска:
function wpmanual_schedule_draft_deletion() {
if (!wp_next_scheduled('wpmanual_delete_old_drafts_event')) {
wp_schedule_event(time(), 'weekly', 'wpmanual_delete_old_drafts_event');
}
}
add_action('wp', 'wpmanual_schedule_draft_deletion');
add_action('wpmanual_delete_old_drafts_event', function() {
wpmanual_delete_old_drafts(30);
});Плагины для управления черновиками и автоматизацией
Если не хочется писать код, можно воспользоваться готовыми плагинами. Вот несколько полезных решений, совместимых с WPManual:
- Clearfy Pro — содержит модули для оптимизации и очистки базы, включая управление черновиками.
- WPRemark — плагин для комментирования и управления контентом, с возможностью автоматизации.
- Scheduled Posts — позволяет планировать публикации и управлять статусами, включая черновики.
Для интеграции с WPManual и дополнительной автоматизации можно комбинировать написанный код с этими плагинами.
Советы по безопасности и производительности при автоматизации
При автоматизации создания и удаления контента важно соблюдать несколько правил:
- Всегда проверяйте права пользователя, если запускаете код из административной части.
- Используйте wp_schedule_event с подходящим интервалом, чтобы не перегружать сервер.
- Тестируйте функции на тестовой среде перед запуском в продакшене.
- Регулярно создавайте резервные копии базы данных.
Выводы
Автоматизация создания и удаления черновиков в WordPress помогает поддерживать порядок в базе данных, экономит время и ресурсы. С помощью простых функций и cron-задач можно настроить регулярное создание шаблонных черновиков и удаление устаревших. Для расширения возможностей рекомендуем использовать плагины, такие как Clearfy Pro и WPRemark, которые легко интегрируются в рабочий процесс.