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

В процессе управления контентом WordPress часто возникает необходимость автоматически создавать категории и подкатегории, особенно при массовом импортировании или генерации записей. В этой статье разберём, как с помощью кода автоматически добавлять категории и подкатегории в WordPress, что позволит значительно упростить работу с таксономиями и автоматизировать рутинные задачи.

Почему важно автоматизировать создание категорий в WordPress

Категории и подкатегории помогают структурировать контент, делают сайт удобнее для пользователей и поисковых систем. При ручном создании большого количества категорий легко допустить ошибки или забыть важные связи между ними. Автоматизация позволяет:

  • Экономить время при массовой загрузке контента.
  • Обеспечить единообразие названий и иерархии.
  • Минимизировать ошибки при создании и связях категорий.
  • Быстро обновлять структуру таксономий при изменениях.

Далее рассмотрим, как реализовать автоматическое создание категорий и подкатегорий с помощью PHP-функций WordPress.

Использование функции wprobot_create_terms для создания категорий и подкатегорий

Создадим функцию wprobot_create_terms, которая принимает массив категорий и подкатегорий и создаёт их в нужной иерархии.

function wprobot_create_terms($terms) {
    foreach ($terms as $term) {
        $parent_id = 0;
        if (isset($term['parent'])) {
            $parent_term = term_exists($term['parent'], 'category');
            if ($parent_term) {
                $parent_id = $parent_term['term_id'];
            } else {
                // Создаём родительскую категорию, если её нет
                $parent = wp_insert_term($term['parent'], 'category');
                if (!is_wp_error($parent)) {
                    $parent_id = $parent['term_id'];
                }
            }
        }
        // Проверяем существует ли категория
        if (!term_exists($term['name'], 'category')) {
            wp_insert_term($term['name'], 'category', ['parent' => $parent_id]);
        }
    }
}

В этом коде функция принимает массив, где каждый элемент — это массив с ключами name и опциональным parent. Если родительская категория указана и отсутствует, она создаётся автоматически.

Пример массива категорий и вызова функции

$categories = [
    ['name' => 'Новости'],
    ['name' => 'Технологии', 'parent' => 'Новости'],
    ['name' => 'Обзоры', 'parent' => 'Новости'],
    ['name' => 'WordPress'],
    ['name' => 'Плагины', 'parent' => 'WordPress']
];
wprobot_create_terms($categories);

Этот код создаст категорию "Новости" с подкатегориями "Технологии" и "Обзоры", а также категорию "WordPress" с подкатегорией "Плагины".

Обработка ошибок и проверка существования категорий

Важно учитывать, что функции wp_insert_term и term_exists могут возвращать ошибки. В примере выше происходит базовая проверка. Для более надёжной работы можно добавить логирование ошибок и обработку исключений.

Например, можно расширить функцию так:

function wprobot_create_terms($terms) {
    foreach ($terms as $term) {
        $parent_id = 0;
        if (isset($term['parent'])) {
            $parent_term = term_exists($term['parent'], 'category');
            if ($parent_term) {
                $parent_id = $parent_term['term_id'];
            } else {
                $parent = wp_insert_term($term['parent'], 'category');
                if (is_wp_error($parent)) {
                    error_log('Ошибка создания родительской категории: ' . $parent->get_error_message());
                    continue;
                } else {
                    $parent_id = $parent['term_id'];
                }
            }
        }
        if (!term_exists($term['name'], 'category')) {
            $result = wp_insert_term($term['name'], 'category', ['parent' => $parent_id]);
            if (is_wp_error($result)) {
                error_log('Ошибка создания категории: ' . $result->get_error_message());
            }
        }
    }
}

Такой подход позволит отслеживать и исправлять возможные проблемы при создании категорий.

Автоматизация создания категорий при импорте записей с плагином WPGPT

Если на сайте используется плагин WPGPT для генерации контента с помощью искусственного интеллекта, можно расширить процесс, чтобы автоматически создавать необходимые категории и привязывать к ним новые записи.

Пример интеграции:

add_action('wpgpt_after_post_generate', 'wprobot_assign_categories_to_post', 10, 2);
function wprobot_assign_categories_to_post($post_id, $post_data) {
    $categories = [
        ['name' => 'AI Новости'],
        ['name' => 'Генерация контента', 'parent' => 'AI Новости'],
    ];
    wprobot_create_terms($categories);

    $term = get_term_by('name', 'Генерация контента', 'category');
    if ($term && !is_wp_error($term)) {
        wp_set_post_categories($post_id, [$term->term_id], true);
    }
}

Этот код создаёт категории, если их нет, и автоматически назначает их сгенерированным записям, что помогает поддерживать порядок при большом объёме контента.

Рекомендации по использованию и расширению

При автоматическом создании категорий важно:

  • Убедиться, что названия категорий уникальны и понятны.
  • Оптимизировать вызовы функции, чтобы не создавать дубликаты.
  • Добавлять проверку прав пользователя, если функция вызывается из интерфейса.
  • Использовать хуки WordPress для интеграции с другими плагинами и процессами.

Также можно расширить функционал, добавив автоматическое создание описаний категорий, слагов и других параметров.

Заключение

Автоматическое создание категорий и подкатегорий в WordPress с помощью собственного кода — мощный инструмент для оптимизации работы с контентом. Используя приведённые примеры и рекомендации, вы сможете легко интегрировать такую функциональность в свои проекты и автоматизировать рутинные задачи, связанные с управлением таксономиями.

Для удобной работы с плагинами и расширениями рекомендую ознакомиться с продукцией WPSHOP, которая предлагает качественные решения для автоматизации WordPress.

Как автоматически отключить Emoji в WordPress с помощью кода
18.01.2026
Как автоматически создать выбор из вариантов в WordPress с помощью пользовательских полей и AJAX
03.02.2026
Как использовать REST API в WordPress для автоматизации задач
25.11.2025
Автоматическое создание и отправка отзывов в WordPress с помощью WP Robot
13.01.2026
Как автоматически удалять спам комментарии в WordPress
30.11.2025