Как создать пирамиду категорий в WordPress с помощью кода

|

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

Что такое пирамида категорий и зачем она нужна в WordPress

Пирамида категорий — это древовидная структура, где родительские категории содержат дочерние, а те в свою очередь могут иметь собственные подкатегории, формируя многоуровневую иерархию. Такая структура помогает:

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

Как программно создавать категории и выстраивать их в иерархию

Для создания категорий с указанием родителя используется функция wp_insert_term(). Рассмотрим пример создания пирамиды из трёх уровней:

// Создаем родительскую категорию
$parent = wphierarchy_wp_insert_term('Электроника', 'category');

// Создаем подкатегорию с родителем
if (!is_wp_error($parent)) {
    $parent_id = $parent['term_id'];
    $child = wphierarchy_wp_insert_term('Смартфоны', 'category', array('parent' => $parent_id));

    // Создаем подкатегорию второго уровня
    if (!is_wp_error($child)) {
        $child_id = $child['term_id'];
        wphierarchy_wp_insert_term('Android', 'category', array('parent' => $child_id));
    }
}

/**
 * Обертка для wp_insert_term с префиксом домена
 */
function wphierarchy_wp_insert_term($term, $taxonomy, $args = array()) {
    return wp_insert_term($term, $taxonomy, $args);
}

В результате создастся пирамида: Электроника > Смартфоны > Android.

Вывод пирамиды категорий с помощью рекурсивной функции

Для отображения иерархии удобно использовать рекурсивную функцию, которая будет проходить по категориям и выводить вложенные списки.

function wphierarchy_display_category_tree($parent = 0) {
    $args = array(
        'taxonomy' => 'category',
        'parent' => $parent,
        'hide_empty' => false
    );
    $categories = get_terms($args);

    if ($categories) {
        echo '<ul>';
        foreach ($categories as $category) {
            echo '<li>' . esc_html($category->name);
            wphierarchy_display_category_tree($category->term_id);
            echo '</li>';
        }
        echo '</ul>';
    }
}

// Вызов функции для вывода всей пирамиды
wphierarchy_display_category_tree();

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

Фильтрация и выборка постов по уровню вложенности категорий

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

function wphierarchy_get_posts_by_category_tree($category_id) {
    // Получаем все дочерние категории
    $all_cat_ids = wphierarchy_get_all_child_categories($category_id);
    $all_cat_ids[] = $category_id; // Добавляем саму категорию

    $query = new WP_Query(array(
        'category__in' => $all_cat_ids,
        'posts_per_page' => -1
    ));

    return $query->posts;
}

function wphierarchy_get_all_child_categories($parent_id) {
    $child_cats = get_terms(array(
        'taxonomy' => 'category',
        'parent' => $parent_id,
        'hide_empty' => false
    ));

    $ids = array();
    foreach ($child_cats as $cat) {
        $ids[] = $cat->term_id;
        $ids = array_merge($ids, wphierarchy_get_all_child_categories($cat->term_id));
    }

    return $ids;
}

// Использование:
$posts = wphierarchy_get_posts_by_category_tree(10); // где 10 - ID категории

Этот код позволяет получить все посты из категории и всех её подкатегорий рекурсивно.

Практические советы по работе с иерархией категорий

Для удобства управления иерархией категорий рекомендуется:

Использование плагина Clearfy Pro для оптимизации категорий

Плагин Clearfy Pro помогает оптимизировать работу с таксономиями, включая категории. С его помощью можно отключить ненужные категории, оптимизировать URL и ускорить загрузку страниц с категориями.

Заключение

Создание и вывод пирамиды категорий в WordPress — задача, решаемая с помощью стандартных функций и небольшой порции кода. Рекурсивные функции и правильное использование API категорий позволят гибко формировать и отображать иерархию на сайте. Для более продвинутой оптимизации можно использовать специализированные плагины, такие как Clearfy Pro.

Как создать дерево разделений в WordPress с подсчетом и фильтрацией
14.03.2026
Динамическая иерархия пользователей WordPress с поддержкой REST API
22.03.2026
WooCommerce: правильная настройка иерархии атрибутов и фильтров для товаров
04.05.2026
Как создать и настроить собственную иерархию таксономий в WordPress
06.12.2025
Как создать иерархию виджетов в WordPress с помощью кода
05.01.2026
×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее