2017-06-23 5 views
0

私は、トップポートの分類法を単一のポートフォリオページに表示する必要があります。サブカテゴリーがあるなら、私にだけ、 一部のポートフォリオ品目は、サブカテゴリを持っていないし、その場合には、それは親の分類を示していないため、このコードが動作する現在の1つのpost tyeに現在のトップレベルのタクソノミーを表示する - Wordpress

(明らかに親分類が存在しない)

<?php 
    // variable for location 
    $term_list = ''; 
    $terms  = get_the_terms($post->ID, 'portfolio_cat'); 
    $prefix = ''; 

     foreach($terms as $term) { 
      $parent_term = get_term($term->parent, 'portfolio_cat'); 
      $term_list .= $prefix . $parent_term->name; 
      $prefix  = ', '; 

      } 

     // output 
    echo $term_list; 
?> 

誰もが解決策を知っていますか?

答えて

0

現在のカテゴリの子要素をsubcategoryでチェックする必要があります。利用可能であれば、現在の親カテゴリを印刷します。

<?php 
    // variable for location 
    $term_list = ''; 
    $terms  = get_the_terms($post->ID, 'portfolio_cat'); 
    $prefix = ''; 

     foreach($terms as $term) { 
      $parent_term = get_term_children($term->parent, 'portfolio_cat'); 
      if(count($parent_term) > 0){ 
       $term_list .= $prefix . $parent_term->name; 
       $prefix  = ', '; 
      }else{ 
       $term_list .= $prefix . $term->name; 
       $prefix  = ', '; 
      } 
      } 

     // output 
    echo $term_list; 
?> 

https://developer.wordpress.org/reference/functions/get_the_terms/

https://codex.wordpress.org/Function_Reference/get_term_children

+0

私は$ parent_term = get_term_children($ TERM->親、 'portfolio_cat')を追加する必要があります。 ifの中、$ term_listの前にもあります。そして今、eveythingはうまくいきます!ありがとうございました! – alice

関連する問題