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

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

Что такое многоуровневая пагинация и зачем она нужна

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

Плюсы многоуровневой навигации:

  • Улучшение UX за счет понятной структуры.
  • Повышение времени пребывания на сайте.
  • Оптимизация SEO за счет правильного распределения ссылочного веса.

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

Установка и базовая настройка ABC Pagination

Для начала установим плагин ABC Pagination. Это бесплатное решение с открытым исходным кодом, которое легко адаптируется под разные задачи.

  1. Перейдите в админку WordPress → Плагины → Добавить новый.
  2. В поиске введите «ABC Pagination» и установите плагин от WPSHOP.
  3. Активируйте плагин.

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

Для базовой многоуровневой пагинации активируйте опцию «Enable hierarchical pagination» и сохраните изменения.

Создание многоуровневой пагинации в шаблоне WordPress

Теперь интегрируем пагинацию в тему. Обычно навигация вставляется в файлы шаблона, где выводятся записи — например, archive.php или category.php.

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

<?php if ( function_exists( 'wpqa_abc_pagination' ) ) {
    wpqa_abc_pagination();
} ?>

Здесь wpqa_abc_pagination — это пользовательская функция с префиксом вашего домена (wpqa), которая оборачивает вызов пагинации плагина, чтобы избежать конфликтов и упростить поддержку.

Пример простой обертки для файла functions.php:

function wpqa_abc_pagination() {
    if ( function_exists( 'abc_pagination' ) ) {
        abc_pagination();
    }
}

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

Кастомизация вывода пагинации

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

Пример фильтра для изменения количества видимых ссылок:

add_filter( 'abc_pagination_links_count', 'wpqa_custom_pagination_links_count' );
function wpqa_custom_pagination_links_count( $count ) {
    return 7; // увеличить количество ссылок до 7
}

Также можно менять HTML обертки для пунктов меню, добавлять иконки, классы и т.д.

Пример: многоуровневая пагинация для категорий и подкатегорий

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

Для этого можно комбинировать ABC Pagination с WP_Query и кастомной функцией:

function wpqa_custom_category_pagination() {
    $current_cat = get_queried_object_id();
    $paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;

    $args = array(
        'cat' => $current_cat,
        'posts_per_page' => 10,
        'paged' => $paged
    );

    $query = new WP_Query( $args );

    if ( $query->have_posts() ) {
        while ( $query->have_posts() ) {
            $query->the_post();
            // вывод записи
            the_title( '<h2>', '</h2>' );
        }

        // пагинация
        abc_pagination( array('total' => $query->max_num_pages, 'current' => $paged) );
    }
    wp_reset_postdata();
}

В шаблоне вызовите wpqa_custom_category_pagination() вместо стандартного цикла. Это обеспечит корректное разделение постов по страницам с учетом выбранной категории.

Решение типичных проблем с многоуровневой пагинацией

Проблема 1: пагинация не учитывает текущий уровень вложенности

Часто бывает, что пагинация всегда ссылается на корень, игнорируя подкатегории. Чтобы это исправить, нужно правильно передавать параметры в WP_Query и ABC Pagination, учитывая текущий объект запроса.

Используйте get_queried_object() и передавайте ID категории или страницы в аргументы.

Проблема 2: конфликт стилей пагинации с темой

Если пагинация выглядит плохо, добавьте свои CSS классы или подключите стили плагина. Плагин ABC Pagination поддерживает кастомные классы для контейнера и ссылок.

Проблема 3: пагинация не работает с AJAX

Для динамической подгрузки страниц без перезагрузки используйте AJAX. В этом поможет пример из документации ABC Pagination или создайте свой обработчик на admin-ajax.php.

Заключение

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

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

Как использовать метаполя в WordPress для дополнительного контента
05.04.2026
WooCommerce: как изменить стоимость товара в зависимости от способа оплаты
20.06.2026
Как удалить заблокированные аккаунты в WordPress с помощью кода
06.03.2026
WooCommerce: как изменить стоимость товара по времени с помощью WP-Cron
03.07.2026
Автоматическое создание резервных копий в WordPress с помощью плагинов и кода
14.01.2026