Я посетил эту страницу несколько месяцев назад. Я вернулся сегодня, стрелка вверх на вышеупомянутом решении тогда все еще копал. Хотя это хорошее решение, Wordpress часто предлагает лучшее или близкое решение.
get_category_parents ()
Эта функция работает так, как Рахул напечатал в основном. Это также называет себя, что кажется наиболее логичным подходом, и именно поэтому Рахул получает от меня точку зрения по этому вопросу. Не используйте $ link, возвращайте строку категорий, анализируйте их (), затем подсчитывайте, или, я полагаю, мы могли бы подсчитать, сколько раз использовался разделитель, и добавить 1 *.
function get_category_parents( $id, $link = false, $separator = '/', $nicename = false, $visited = array() ) {
$chain = '';
$parent = get_term( $id, 'category' );
if ( is_wp_error( $parent ) )
return $parent;
if ( $nicename )
$name = $parent->slug;
else
$name = $parent->name;
if ( $parent->parent && ( $parent->parent != $parent->term_id ) && !in_array( $parent->parent, $visited ) ) {
$visited[] = $parent->parent;
$chain .= get_category_parents( $parent->parent, $link, $separator, $nicename, $visited );
}
if ( $link )
$chain .= '<a href="' . esc_url( get_category_link( $parent->term_id ) ) . '" title="' . esc_attr( sprintf( __( "View all posts in %s" ), $parent->name ) ) . '">'.$name.'</a>' . $separator;
else
$chain .= $name.$separator;
return $chain;
}