У меня есть пользовательская таксономия «категория портфолио», в то время как мне нужно показать все категории иерархии публикации портфолио, например
сообщение находится под topcat -> childcat -> yetchildcat
, я хочу показать «topcat, childcat, Yetchildcat» на странице сообщения, но get_the_terms only
вернуть « yetchildcat
», как мне получить все?
Есть более общая функция: она вызывается
get_ancestors()
и находится вwp-includes/taxonomy.php
Блестящий… Я постоянно натыкаюсь на приятные новинки в паре последних крупных релизов.
» — это открывающая или закрывающая кавычка на многих языках, программы чтения с экрана обозначают ее как таковую. Неправильное использование его в качестве разделителя очень недружелюбно для тех, кто полагается на программы чтения с экрана. Не делай этого. Пожалуйста, отредактируйте другой пост, чтобы включить исправление, если это необходимо.
Я обновил исходный пост, добавив исправление $link (без разделителя Â).
@Джефф,
Спасибо за это. Я исправил вашу неработающую функцию $link. и изменил значения по умолчанию, включив «Â» в качестве разделителя.
В
get_category_parents()
(см. источник ) нет функции более глубокого уровня. Он просто проверяетparent
поле в объекте категории, а затем рекурсивно проверяет его родителя, пока оно не закончится.Так что вам нужно будет либо написать простой аналог, либо переписать его (в зависимости от того, какой функционал вам нужен).
get_the_terms
иget_term
получить идентификатор родителя среди данных термина. Таким образом, вы можете использовать эту информацию для создания пользовательских функций, которые будут отображать дерево таксономии.На самом деле я работаю над чем-то похожим — опубликую код, как только он заработает и почистится ;-D
РЕДАКТИРОВАТЬ: я, наконец, сделал это… Вот код для получения «topcat -> childcat -> Yetchildcat» со ссылкой на страницу терминов таксономии:
Я уверен, что можно сделать код лучше/чище, но, похоже, он работает ;-D
Я написал рекурсивную функцию, основанную почти точно на get_category_parents(), просто заменив части, относящиеся к категории, эквивалентами на основе терминов. Надеюсь, это поможет кому-то.