Получение иерархии родительских категорий в качестве объектов из шаблона категории

Каков наилучший способ получить иерархию объектов родительской категории из шаблона category.php , когда нет сообщения как такового.

Функция get_category_parents() возвращает строку, а не объекты.

Функция get_categories() , по-видимому, предназначена для страниц, на которых есть сообщение, потому что аргумент type может принимать post или link .

Есть ли какая-то другая функция, которую я пропускаю? Мне нужно что-то, что ведет себя точно так же, как get_category_parents() но мне нужны объекты категории, а не только строка из всех имен.

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

 var_dump(get_category_parents(5)); // reference $anc = get_ancestors(5,'category'); $parent = array_pop($anc); $hier[] = get_category($parent); $args = array( 'child_of' => $parent, ); array_push($hier,get_categories($args)); var_dump($hier);