Автоматическое создание категорий и подкатегорий в WordPress с примером кода

В процессе разработки и поддержки сайтов на 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 — они отлично дополняют задачи массового управления данными.

Как создать конкретный виджет в WordPress с использованием AJAX
30.11.2025
Как автоматизировать создание резервных копий в WordPress
12.01.2026
Как массово изменить или удалить атрибуты alt и title в изображениях WordPress
06.12.2025
Как добавить автоматическое отображение отзывов в WordPress
16.04.2026
Как автоматически удалять неактивных пользователей WordPress
07.02.2026