Введение в автоматизацию управления туториалами в WordPress
В процессе ведения сайта с обучающим контентом часто возникает необходимость быстро добавлять и удалять туториалы — статьи, руководства, пошаговые инструкции. Ручное управление большим объемом таких материалов отнимает много времени и неэффективно. В этой статье рассмотрим, как автоматизировать процесс создания и удаления туториалов в WordPress с помощью пользовательских типов записей, WP-Cron и кастомного кода. Также покажем, как использовать популярные плагины для упрощения задач.
Автоматизация позволит своевременно обновлять контент, удалять устаревшие материалы и создавать новые по шаблонам, что особенно актуально для сайтов с регулярно выходящими обучающими статьями.
Создание пользовательского типа записей «Туториалы» для удобного управления
Для начала создадим собственный тип записей (Custom Post Type), чтобы отделить туториалы от других материалов сайта. Это упростит фильтрацию, навигацию и автоматизацию.
Добавим следующий код в файл functions.php вашей темы или в отдельный плагин:
function wpbit_register_tutorial_post_type() {
$labels = array(
'name' => 'Туториалы',
'singular_name' => 'Туториал',
'add_new' => 'Добавить туториал',
'add_new_item' => 'Добавить новый туториал',
'edit_item' => 'Редактировать туториал',
'new_item' => 'Новый туториал',
'view_item' => 'Просмотреть туториал',
'search_items' => 'Поиск туториалов',
'not_found' => 'Туториалы не найдены',
'not_found_in_trash' => 'Туториалы не найдены в корзине',
'menu_name' => 'Туториалы'
);
$args = array(
'labels' => $labels,
'public' => true,
'has_archive' => true,
'rewrite' => array('slug' => 'tutorials'),
'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt'),
'show_in_rest' => true,
);
register_post_type('wpbit_tutorial', $args);
}
add_action('init', 'wpbit_register_tutorial_post_type');Этот код создаст отдельный раздел в админке для туториалов, где можно будет удобно создавать и редактировать материалы.
Автоматическое создание туториалов по расписанию с WP-Cron
Предположим, нам нужно автоматически создавать шаблонные туториалы с базовым содержимым, например, каждую неделю. Для этого используем WP-Cron — встроенную систему планирования задач WordPress.
Добавим функцию, которая создаёт новый туториал, и запланируем её вызов:
function wpbit_create_scheduled_tutorial() {
$post_data = array(
'post_title' => 'Автоматически созданный туториал ' . date('d.m.Y'),
'post_content' => 'Это шаблонный туториал, созданный автоматически.',
'post_status' => 'publish',
'post_type' => 'wpbit_tutorial'
);
wp_insert_post($post_data);
}
function wpbit_schedule_tutorial_creation() {
if (!wp_next_scheduled('wpbit_weekly_tutorial_event')) {
wp_schedule_event(time(), 'weekly', 'wpbit_weekly_tutorial_event');
}
}
add_action('wpbit_weekly_tutorial_event', 'wpbit_create_scheduled_tutorial');
add_action('wp', 'wpbit_schedule_tutorial_creation');Этот код проверяет, запланировано ли событие, и если нет — создаёт еженедельное задание. По расписанию будет создаваться новый туториал с текущей датой в заголовке.
Автоматическое удаление устаревших туториалов с помощью WP-Cron
Для очистки базы от старых обучающих материалов можно реализовать удаление туториалов старше определённого срока, например, 1 года.
Добавим функцию для выбора и удаления таких записей:
function wpbit_delete_old_tutorials() {
$args = array(
'post_type' => 'wpbit_tutorial',
'date_query' => array(
array(
'before' => date('Y-m-d', strtotime('-1 year')),
'inclusive' => true,
),
),
'posts_per_page' => -1,
'fields' => 'ids',
'post_status' => 'any'
);
$old_tutorials = get_posts($args);
foreach ($old_tutorials as $tutorial_id) {
wp_delete_post($tutorial_id, true); // true — удалить без перемещения в корзину
}
}
function wpbit_schedule_old_tutorials_deletion() {
if (!wp_next_scheduled('wpbit_monthly_tutorial_cleanup')) {
wp_schedule_event(time(), 'monthly', 'wpbit_monthly_tutorial_cleanup');
}
}
add_action('wpbit_monthly_tutorial_cleanup', 'wpbit_delete_old_tutorials');
add_action('wp', 'wpbit_schedule_old_tutorials_deletion');Теперь ежемесячно будет запускаться задача, удаляющая все туториалы старше года, что помогает держать базу данных в порядке и не засорять сайт устаревшим контентом.
Использование плагинов для расширения функциональности автоматизации
Если хочется не писать весь код самостоятельно, можно использовать плагины для управления пользовательскими типами записей и планировщиком задач.
Рекомендуемые плагины:
- Custom Post Type UI — удобный интерфейс для создания и управления пользовательскими типами записей и таксономиями.
- WP Crontrol — позволяет просматривать, редактировать и создавать задачи WP-Cron через админку без кода.
- Clearfy Pro (https://wpshop.ru/clearfy-pro/?utm_source=wpbit.ru&utm_medium=article&utm_campaign=kak-avtomatizirovat-sozdanie-i-udaleniye-tiutorialov-v-wordpress) — оптимизирует и упрощает работу сайта, включая функции очистки и автоматизации.
Используя эти инструменты, можно комбинировать визуальное управление и кастомный код, что удобно при развитии сайта.
Пример комплексного решения: шорткод для создания туториала вручную
Для удобства можно добавить шорткод, который позволит создавать новый туториал прямо из содержимого страницы или записи, используя форму.
Пример реализации:
function wpbit_tutorial_creation_form() {
if (isset($_POST['wpbit_tutorial_submit'])) {
$title = sanitize_text_field($_POST['wpbit_tutorial_title']);
$content = sanitize_textarea_field($_POST['wpbit_tutorial_content']);
if (!empty($title) && !empty($content)) {
$post_id = wp_insert_post(array(
'post_title' => $title,
'post_content' => $content,
'post_status' => 'publish',
'post_type' => 'wpbit_tutorial'
));
if ($post_id) {
return '<p>Туториал успешно создан! <a href="' . get_permalink($post_id) . '">Перейти к туториалу</a></p>';
} else {
return '<p>Ошибка при создании туториала.</p>';
}
} else {
return '<p>Пожалуйста, заполните все поля.</p>';
}
}
ob_start();
?>
<form method="post">
<p><label>Заголовок туториала:<br><input type="text" name="wpbit_tutorial_title" required></label></p>
<p><label>Содержание:<br><textarea name="wpbit_tutorial_content" rows="5" required></textarea></label></p>
<p><input type="submit" name="wpbit_tutorial_submit" value="Создать туториал"></p>
</form>
<?php
return ob_get_clean();
}
add_shortcode('wpbit_create_tutorial', 'wpbit_tutorial_creation_form');Теперь, добавив шорткод [wpbit_create_tutorial] в любую страницу, вы получите форму для создания туториала без захода в админку.
Советы по безопасности и производительности при автоматизации
При использовании автоматического создания и удаления контента обязательно проверяйте права доступа и валидируйте данные, чтобы избежать уязвимостей и ошибок.
WP-Cron работает при загрузке сайта, поэтому на малопосещаемых сайтах задачи могут запускаться с задержкой. Для точного расписания стоит настроить системный cron и отключить WP-Cron.
Регулярно тестируйте автоматические задачи на тестовом стенде перед внедрением на рабочем сайте, чтобы избежать потери важных данных.