Нужно получить список категорий таксономии соблюдая иерархию
Имеется таксономия -> education_category, мне нужно вывести иерархию категорий данной таксономии. У меня есть код который выводит все категории таксономии но без соблюдения списка иерархии, к тому же когда находимся на текущей категории, нужно добавлять класс current-cat. Буду благодарен за помощь!
Код который выводит все категории таксономии но без соблюдения списка иерархии:
<?php $taxonomy_name = "education_category"; $parent_terms = get_the_terms($post->ID, 'education_category'); foreach ($parent_terms as $pterm) { $terms = get_terms($taxonomy_name, array('parent' => $pterm->term_id, 'orderby' => 'slug', 'hide_empty' => false)); foreach ($terms as $term) { echo '<li><a href="' . get_term_link($term) . '" class="toggle-posts">' . $term->name . '</a></li>'; } } ?>
Сейчас мой код отображает следующее:
- Категория таксономии
- Саб категория таксономии
- Категория таксономии
- Категория таксономии
- Саб категория таксономии
- Саб категория таксономии 2
В результате я хочу получить:
- Категория таксономии
-
- Саб категория таксономии
- Категория таксономии
- Категория таксономии
-
- Саб категория таксономии
-
- Саб категория таксономии 2
Вот функцию нашел в сети, которая собирает массив терминов с учетом вложенности:
Используем так:
Получим массив:
Остается его обработать и вывести что нужно... Больше не подскажу, сорри...
Что если использовать wp_list_category?
Вот код:
Как нам получать child_of так, чтобы мы могли находится как на вложенной категории так и на странице поста, и слева выводился список с учетом моего условия?
Первая категория (не показываем)
Вторая категория (не показываем)
По логике вещей я должен передавать в child_of ID родительской категории...
Да так и есть!
Рубрики записи получаются с помощью get_the_terms()
Текущую рубрику на странице рубрики можно получить с помощью get_queried_object()
Там везде есть в примерах как получить нужный ID...
Я использую get_queried_object_id
Да, на странице родительской категории я получаю то что нужно, большое спасибо, это помогает! Но на странице поста получаю сообщение о том что категории отсутствуют...
Но как я могу использовать get_queried_object в моем случае?
Вот скриншоты:
http://joxi.ru/YmEY64OUYey0m6
http://joxi.ru/vAWMNk5tZa0xmW
Осталось получать список как на первом скриншоте на странице поста, я буду очень благодарен Вам!
Когда я использую:
get_queried_object()->term_id
в результате выводит текущую категорию в сайдбаре слева.. Но я должен выводить всегда один и тот же список в независимости где я нахожусь, либо это пост категории, либо категория...
http://wp-kama.ru/function/wp_list_categories
https://wp-kama.ru/function/wp_nav_menu#primer-ispolzovaniya-parametra-walker
Я уже перебробовал множество вариантов, могли бы вы взглянуть на мой код?
Вот логика, предполагаем что мы находимся на странице первой категории: