数か月前にこのページにアクセスしました。私は今日戻ってきて、上記の解決策を上に向けて、まだ掘り下げていました。これは優れたソリューションですが、Wordpress の方が優れているか、それに近いソリューションを提供することがよくあります。
get_category_parents()
この関数は、基本的に Rahul が入力したとおりに機能します。それはまた、最も論理的なアプローチと思われるものであり、それがRahulがこれについて私からポイントを得ている理由です. $link を使用せず、カテゴリの文字列を返し、explode() してカウントするか、区切り記号が使用された回数をカウントして 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;
}