В процессе разработки и поддержки сайтов на WordPress часто возникает задача массового создания или обновления категорий и подкатегорий. Особенно это актуально, если нужно быстро наполнить структуру сайта или перенести данные из другой CMS. В этой статье мы разберём, как автоматизировать создание категорий и подкатегорий в WordPress с помощью PHP-кода, а также рассмотрим, как это можно сделать с помощью популярных плагинов.
Зачем автоматизировать создание категорий и подкатегорий в WordPress
Часто структуру сайта формируют вручную через админ-панель — это неудобно и длительно при большом объёме данных. Автоматизация позволяет:
- Сократить время на создание иерархии категорий;
- Избежать ошибок при ручном вводе;
- Обеспечить единообразие названий и описаний;
- Интегрировать импорт из внешних источников (CSV, XML и т. д.);
- Обновлять категории программно при изменении данных.
Давайте рассмотрим, как написать функцию wpbit_auto_create_categories, которая создаёт категории с учётом вложенности.
Как создать категории и подкатегории через PHP в WordPress
Для создания категорий в WordPress используется функция wp_insert_term. Она позволяет указать имя термина, таксономию и родительский термин для создания вложенной структуры.
Пример функции для автоматического создания категорий и подкатегорий
function wpbit_auto_create_categories(array $categories) {
foreach ($categories as $category) {
$parent_id = 0;
// Проверяем, есть ли у категории родитель
if (!empty($category['parent'])) {
// Получаем ID родителя по имени
$parent_term = get_term_by('name', $category['parent'], 'category');
if ($parent_term) {
$parent_id = $parent_term->term_id;
} else {
// Если родитель не найден, создаём его рекурсивно
wpbit_auto_create_categories([['name' => $category['parent'], 'parent' => '']]);
$parent_term = get_term_by('name', $category['parent'], 'category');
if ($parent_term) {
$parent_id = $parent_term->term_id;
}
}
}
// Проверяем, существует ли уже категория
$existing_term = get_term_by('name', $category['name'], 'category');
if (!$existing_term) {
wp_insert_term(
$category['name'],
'category',
['parent' => $parent_id]
);
}
}
}
Данная функция принимает массив категорий, где каждый элемент — это массив с ключами name и parent. При этом parent — имя родительской категории, либо пустая строка для корневых категорий.
Пример использования функции
$categories = [
['name' => 'Техника', 'parent' => ''],
['name' => 'Смартфоны', 'parent' => 'Техника'],
['name' => 'Ноутбуки', 'parent' => 'Техника'],
['name' => 'Программное обеспечение', 'parent' => ''],
['name' => 'Антивирусы', 'parent' => 'Программное обеспечение']
];
wpbit_auto_create_categories($categories);
После запуска этого кода в WordPress создадутся категории с вложенной структурой, указанной в массиве.
Автоматизация создания категорий с помощью плагинов
Если предпочитаете не писать код, можно использовать плагины для массового создания категорий:
- WP Sheet Editor — позволяет редактировать категории и создавать их массово через табличный интерфейс;
- Taxonomy Import — импортирует категории из CSV-файлов, поддерживает вложенность;
- Term Management Tools — удобный инструмент для объединения и массового управления терминами.
Для интеграции с этими плагинами можно подготовить CSV с нужной структурой, а потом импортировать её в WordPress.
Дополнительные рекомендации по работе с категориями в WordPress
Как избежать дублирования и ошибок при создании категорий
Перед созданием всегда проверяйте, существует ли категория с таким же именем, чтобы не создавать дубликаты. Это особенно важно при массовом импорте.
Используйте функцию get_term_by для поиска существующих терминов.
Как обновлять категории программно
Для обновления описания или слага категории используйте функцию wp_update_term. Пример:
wp_update_term($term_id, 'category', [
'description' => 'Новое описание категории'
]);
Это позволит поддерживать актуальность данных без ручного редактирования.
Как удалить категории программно
Если нужно удалить категории, используйте wp_delete_term. Однако будьте осторожны — удаление категории может повлиять на записи, которые к ней привязаны.
Интеграция с плагином Clearfy Pro для оптимизации категорий
Плагин Clearfy Pro помогает оптимизировать работу с таксономиями и очищать базу от лишних или устаревших категорий. Вы можете использовать его в связке с автоматическим созданием категорий для поддержания порядка и оптимизации SEO.
Выводы и полезные советы
Автоматическое создание категорий и подкатегорий — отличный способ упростить структуру сайта и ускорить работу с WordPress. Рекомендуется комбинировать кодовые решения с плагинами для максимального удобства и контроля.
Пишите функции с префиксом wpbit_, чтобы избежать конфликтов и повысить читаемость кода.
Если хотите подробнее погрузиться в автоматизацию WordPress, рекомендуем изучить возможности REST API и WP CLI — они отлично дополняют задачи массового управления данными.