Функция get_category_parents()
в WordPress позволяет получить список родительских категорий для заданной категории, с возможностью форматирования результата в виде ссылок и указания разделителя между названиями категорий. Это полезно при создании навигационных цепочек (например, хлебных крошек) на сайте.
get_category_parents( int $category_id, bool $link = false, string $separator = '/', bool $nicename = false, array $deprecated = array() ): string|WP_Error
Параметры
- $category_id (int) (обязательный)
ID категории, для которой нужно получить родительские категории. - $link (bool) (необязательный)
Указывает, будут ли названия категорий выводиться в виде ссылок.
Значение по умолчанию:false
(только текст). - $separator (string) (необязательный)
Разделитель между категориями.
Значение по умолчанию:'/'
. - $nicename (bool) (необязательный)
Указывает, нужно ли использовать слаг категории вместо её названия.
Значение по умолчанию:false
(выводится человеко-читаемое название категории). - $deprecated (array) (необязательный)
Не используется. Оставлено для обратной совместимости.
Значение по умолчанию: пустой массив.
Возвращаемое значение
- Строка с названиями родительских категорий, разделенными указанным разделителем, или объект
WP_Error
в случае ошибки.
Пример 1: Вывод родительских категорий в виде ссылок
Этот пример выводит родительские категории для категории с ID 10, разделенные символом «» (графическая стрелка вправо). Все названия категорий будут ссылками на соответствующие страницы категорий.
<?php
echo get_category_parents( 10, true, ' » ' );
?>
Результат:
Главная » Категория 1 » Категория 2 » Текущая категория
Пример 2: Получение родительских категорий без ссылок
Если вы хотите вывести список родительских категорий в виде текста (без ссылок), установите параметр $link
в false
. В этом примере родительские категории будут разделены символом /
.
<?php
echo get_category_parents( 5, false, ' / ' );
?>
Результат:
Главная / Категория 1 / Категория 2 / Текущая категория
Пример 3: Использование слагов категорий
Если нужно вывести слаги категорий (то, что используется в URL), установите параметр $nicename
в true
. Это может быть полезно для SEO или когда требуется использовать слаги категорий в ссылках или других элементах.
<?php
echo get_category_parents( 12, false, ' - ', true );
?>
Результат:
glavnaya - category-1 - category-2 - tekushchaya-kategoriya
Пример 4: Обработка ошибок
В случае, если категория не найдена или произошла другая ошибка, функция вернёт объект WP_Error
. Важно проверять результат и обрабатывать ошибки:
<?php
$category_id = 15;
$parents = get_category_parents( $category_id, true, ' » ' );
if ( is_wp_error( $parents ) ) {
echo 'Ошибка: ' . $parents->get_error_message();
} else {
echo $parents;
}
?>
Пример 5: Получение корневой категории
Для получения самой верхней (корневой) категории в иерархии, можно воспользоваться комбинацией функций WordPress, включая get_category_parents()
. Вот пример, как это можно сделать:
<?php
$category_id = 25;
$parents = get_category_parents( $category_id, false, '/', true );
$parent_ids = explode('/', $parents);
// Получаем ID корневой категории
$root_category_id = $parent_ids[0];
echo 'Корневая категория: ' . get_the_category_by_ID( $root_category_id );
?>
Заключение
Функция get_category_parents()
полезна для вывода иерархии родительских категорий. Её часто используют для создания хлебных крошек (breadcrumb navigation) или просто для отображения категории и её родителей в иерархическом порядке. Возможность добавления ссылок и использования пользовательских разделителей делает эту функцию гибкой для различных сценариев.