Создаем динамическую иерархию страниц в WordPress с помощью кода и плагинов

|

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

Что такое динамическая иерархия страниц и зачем она нужна

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

Основные преимущества динамической иерархии:

Рассмотрим несколько способов реализации такой иерархии — через код и плагины.

Создание динамического дерева страниц через кастомный код

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

function wphierarchy_get_page_tree($parent_id = 0) {
    $pages = get_pages(array('parent' => $parent_id, 'sort_column' => 'menu_order'));
    if (empty($pages)) {
        return '';
    }
    $output = '<ul>';
    foreach ($pages as $page) {
        $output .= '<li><a href="' . get_permalink($page->ID) . '">' . esc_html($page->post_title) . '</a>';
        $output .= wphierarchy_get_page_tree($page->ID);
        $output .= '</li>';
    }
    $output .= '</ul>';
    return $output;
}

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

function wphierarchy_page_tree_shortcode() {
    return wphierarchy_get_page_tree(0);
}
add_shortcode('wphierarchy_tree', 'wphierarchy_page_tree_shortcode');

Теперь в любом месте сайта можно вставить [wphierarchy_tree] и получить актуальное дерево страниц.

Как улучшить вывод иерархии

Для удобства можно добавить CSS-стили, которые сделают список более читабельным. Например:

.wphierarchy-tree ul {
    list-style-type: none;
    margin-left: 20px;
}
.wphierarchy-tree li {
    margin-bottom: 5px;
}

И обернуть вывод в div с этим классом:

function wphierarchy_page_tree_shortcode() {
    return '<div class="wphierarchy-tree">' . wphierarchy_get_page_tree(0) . '</div>';
}

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

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

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

Пример использования List Subpages Shortcode

Установите плагин, затем в нужном месте шаблона или записи добавьте:

[subpages parent="0" depth="3"]

Параметр parent указывает ID страницы, с которой начинается вывод, а depth — уровень вложенности.

Динамическая иерархия и SEO: что важно учитывать

Иерархия страниц напрямую влияет на внутреннюю перелинковку и структуру URL, а значит, и на SEO. Чтобы избежать проблем, учитывайте следующие моменты:

Для автоматизации создания хлебных крошек можно использовать следующий код:

function wphierarchy_breadcrumbs() {
    global $post;
    $breadcrumbs = '<a href="' . home_url() . '">Главная</a>';
    if ($post->post_parent) {
        $parent_id  = $post->post_parent;
        $parents = array();
        while ($parent_id) {
            $page = get_post($parent_id);
            $parents[] = '<a href="' . get_permalink($page->ID) . '">' . get_the_title($page->ID) . '</a>';
            $parent_id = $page->post_parent;
        }
        $parents = array_reverse($parents);
        foreach ($parents as $parent_link) {
            $breadcrumbs .= ' » ' . $parent_link;
        }
    }
    $breadcrumbs .= ' » ' . get_the_title($post->ID);
    return '<nav class="breadcrumbs">' . $breadcrumbs . '</nav>';
}

Вставьте вызов echo wphierarchy_breadcrumbs(); в шаблон, чтобы вывести навигацию.

Заключение

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

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

Как создать иерархию кастомных типов постов с поддержкой REST API в WordPress
11.03.2026
Динамическая иерархия типов постов в WordPress с поддержкой AJAX
10.02.2026
Как создать иерархию динамических блоков на странице WordPress
25.02.2026
Как создать иерархию кастомных пользовательских метаполей в WordPress
01.04.2026
Как создать дерево разделений в WordPress с подсчетом и фильтрацией
14.03.2026
×

AI-плагин

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

SEO и мета-теги

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

Изображения

Комментарии

Подробнее