親ターム
ー子ターム
ーー孫ターム
上記のような階層をもつカスタムタクソノミーを取得し、
親>子>孫の順で表示する方法を模索しております。
現状、
functions.phpに
php
1function getRootTaxonomies($terms=null){ 2 $rootterms = array(); 3 if(isset($terms)) 4 { 5 foreach($terms as $k=>$v){ 6 if($v->parent === 0){ 7 $v->children = array(); 8 $rootterms[] = $v; 9 } 10 } 11 foreach($rootterms as $k=>$v) 12 { 13 foreach($terms as $sk=>$sv){ 14 if( $v->term_id === $sv->parent){ 15 $rootterms[$k]->children[] = $sv; 16 } 17 } 18 } 19 } 20 return $rootterms; 21}
上記コードを追加した上で、
タクソノミーを表示したい箇所へ
php
1<?php 2$url = esc_url( home_url('/taxsonomy/')); 3 $parents = getRootTaxonomies( get_the_terms( $post->ID,"taxsonomy"), "0" ); 4 foreach($parents as $pv){ 5 echo '<a href="'.$url.$pv->slug.'">'.$pv->slug.'</a>'."\n"; 6 foreach($pv->children as $ck=>$cv){ 7 echo '<a href="'.$cv->slug.'">'.$cv->slug.'</a>'."\n"; 8 } 9 } 10?>
上記コードを追記しています。
ここまでで子要素は問題なく取得・表示ができるのですが、
孫要素までを取得・表示する段階で詰まっています。
知見をお借りできますでしょうか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。