Работа с категориями в WordPress — важная часть организации контента. При больших объемах сайта или при создании нескольких проектов часто возникает задача массового создания категорий по определённому шаблону. Вручную это долго и неудобно, особенно если структура категорий сложная. В этой статье рассмотрим, как автоматизировать создание категорий в WordPress с помощью кода и плагинов, а также как расширить функционал для удобства редактирования.
Почему автоматизация создания категорий важна
Если у вас сайт с большим количеством тематик, например, новостной ресурс, портал с обзорами или интернет-магазин, то категории помогают структурировать материалы и улучшить навигацию. Автоматическое создание категорий позволяет:
- Экономить время на рутинных операциях.
- Избежать ошибок при ручном создании.
- Унифицировать структуру категорий на нескольких сайтах.
- Быстро обновлять или добавлять новые ветки категорий по шаблону.
Это особенно актуально, если вы часто создаёте сайты под заказ или управляете мультисайтовой сетью.
Создание категорий по шаблону с помощью PHP кода в functions.php
Для автоматизации можно использовать функцию wp_insert_term, которая создаёт термин (в нашем случае категорию) в таксономии. Рассмотрим пример функции yarppCreateCategoriesAutomated(), которая создаст несколько категорий с вложенностью по шаблону.
function yarppCreateCategoriesAutomated() {
// Проверяем, не созданы ли категории уже
if (term_exists('Категория A', 'category')) {
return;
}
// Создаём родительскую категорию
$parent_id = wp_insert_term('Категория A', 'category');
if (is_wp_error($parent_id)) {
error_log('Ошибка создания категории A: ' . $parent_id->get_error_message());
return;
}
// Создаём дочерние категории
$child_categories = ['Подкатегория A1', 'Подкатегория A2', 'Подкатегория A3'];
foreach ($child_categories as $child) {
$result = wp_insert_term($child, 'category', ['parent' => $parent_id['term_id']]);
if (is_wp_error($result)) {
error_log('Ошибка создания подкатегории ' . $child . ': ' . $result->get_error_message());
}
}
}
// Запускаем функцию при инициализации админки
add_action('admin_init', 'yarppCreateCategoriesAutomated');
Этот пример создаёт одну родительскую категорию и три вложенные подкатегории. В реальных условиях можно расширить шаблон, считывать данные из файла или API.
Расширение примера: создание категорий из массива с описаниями
Чтобы добавить описания и слага, можно расширить массив и функцию:
function yarppCreateCategoriesWithMeta() {
$categories = [
[
'name' => 'Категория B',
'slug' => 'kategoria-b',
'description' => 'Описание категории B',
'children' => [
[
'name' => 'Подкатегория B1',
'slug' => 'podkategoria-b1',
'description' => 'Описание подкатегории B1'
],
[
'name' => 'Подкатегория B2',
'slug' => 'podkategoria-b2',
'description' => 'Описание подкатегории B2'
]
]
]
];
foreach ($categories as $cat) {
$parent = wp_insert_term($cat['name'], 'category', [
'slug' => $cat['slug'],
'description' => $cat['description']
]);
if (is_wp_error($parent)) {
error_log('Ошибка создания категории ' . $cat['name'] . ': ' . $parent->get_error_message());
continue;
}
if (!empty($cat['children'])) {
foreach ($cat['children'] as $child) {
$result = wp_insert_term($child['name'], 'category', [
'slug' => $child['slug'],
'description' => $child['description'],
'parent' => $parent['term_id']
]);
if (is_wp_error($result)) {
error_log('Ошибка создания подкатегории ' . $child['name'] . ': ' . $result->get_error_message());
}
}
}
}
}
add_action('admin_init', 'yarppCreateCategoriesWithMeta');
Использование плагинов для массового создания категорий
Если вы не хотите писать код, существуют плагины, которые позволяют импортировать и создавать категории из CSV, Excel или других форматов:
- WP All Import — мощный плагин для импорта данных, включая категории. Можно настроить шаблоны для массового создания терминов.
- Bulk Press — плагин для массового создания категорий, тегов и пользовательских таксономий. Позволяет создавать и удалять таксономии оптом.
- Clearfy Pro — плагин с функциями оптимизации и управления, который может помочь в решении задач с таксономиями.
Для работы с этими плагинами обычно нужно подготовить файл с названиями, описаниями и связями категорий, а затем импортировать.
Пример работы с WP All Import для категорий
1. Подготовьте CSV файл с колонками: name,slug,parent,description.
2. В админке WP All Import создайте новый импорт, выберите файл.
3. Настройте маппинг полей на соответствующие параметры таксономии category.
4. Запустите импорт, категории создадутся автоматически согласно шаблону.
Автоматизация создания категорий с помощью WP-CLI
Если у вас есть доступ к серверу и командной строке, WP-CLI — отличный инструмент для массовой работы с категориями.
Например, можно создать bash-скрипт, который прочитает список категорий из файла и выполнит команду создания:
#!/bin/bash
while IFS=, read -r name slug parent_slug description
do
if [ -z "$parent_slug" ]; then
wp term create category "$name" --slug="$slug" --description="$description"
else
parent_id=$(wp term list category --slug="$parent_slug" --field=term_id)
wp term create category "$name" --slug="$slug" --description="$description" --parent=$parent_id
fi
done < categories.csv
В файле categories.csv содержатся категории в формате: имя, слаг, слаг родителя, описание. Такой подход удобен для регулярного обновления категорий с помощью автоматизированных скриптов.
Советы по организации и поддержке автоматического создания категорий
1. Проверяйте ошибки при создании категорий — используйте is_wp_error и логирование, чтобы отследить проблемы.
2. Избегайте повторного создания — перед созданием проверяйте, существует ли уже категория с таким именем или слагом.
3. Используйте хуки WordPress, чтобы запускать создание категорий только по необходимости, например, при активации плагина или по запросу через WP-CLI.
4. Документируйте структуру шаблона категорий, чтобы команда могла легко вносить изменения.
Заключение по теме автоматизации категорий
Автоматизация создания категорий в WordPress — мощный способ упростить и ускорить управление структурой сайта. С помощью кода, плагинов и WP-CLI можно легко создавать сложные и вложенные категории по шаблону, избавляясь от рутинной ручной работы.
Используйте приведённые примеры и советы для настройки своего проекта. Если нужно больше функционала — обратите внимание на Clearfy Pro, который помогает управлять таксономиями и оптимизировать работу сайта.