Определите глубину термина


Я ищу возможность найти глубину термина в его иерархическом дереве.

Produce
-- Vegetables
---- Carrot
---- Onion
---- Celery
-- Fruit
---- Apple
------ HoneyCrisp
----Orange

Продукция - уровень 0 (или 1), Фрукты - уровень 1, Яблоко - 2, сотовый сок - 3 и т.д.

Идеальное использование - $depth = get_term_depth( $term_id );. У кого-нибудь есть опыт в этом?

По сути, мне нужен другой рендеринг в зависимости от глубины на странице архива терминов.

Author: Eric Holmes, 2013-11-22

1 answers

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

Использование:

$ancestors = get_ancestors( $term_id, 'custom-taxonomy-slug' );
print_r( $ancestors ) ; // array( 0 => 15, 1 => 45 ) - 3rd level term
 10
Author: Eric Holmes, 2013-11-22 19:13:26