サポート » 使い方全般 » 記事が属するタクソノミーを階層で表示したい

  • 下記のように、記事が属するタクソノミーを階層順に並べて表示したいです。
    [親タクソノミー] > [子タクソノミー]

    単純に、記事が属するタクソノミーを表示しようと思えば下記のコードで表示できるのですが、
    <?php echo get_the_term_list( $post->ID, '$taxonomies', '', '', '' ); ?>

    これでは表示順が名前の順番に並ぶので、記事によっては下記のようになってしまいます。
    [子タクソノミー] > [親タクソノミー]

    そこで、下記の記事を参考にしてタクソノミーの並び替えを実現しようとしたのですが
    http://ja.forums.wordpress.org/topic/6360?replies=7

    これを記事が属するタクソノミーに限定して表示するにはどのようにコードを書けばよろしいでしょうか?
    ご教授のほど何卒よろしくお願い致します。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック投稿者 nao_pe

    (@nao_pe)

    タームのスラッグで子タクソノミーだけを選別して
    下記のコードを書くことでなんとか実現できたのですが

    <?php
    $oyaterm = array_pop(get_the_terms($post->ID, '$taxonomies'));
    $term_p = $oyaterm->parent;
    if ( ! $term_p == 0 ){
        $oyaterm = array_shift(get_the_terms($post->ID, '$taxonomies'));
    }
    
    echo '<a href="/$taxonomies/' . $oyaterm->slug . '">' . esc_html($oyaterm->name) . '</a>'
    ?>
     /
    <?php $term = $wp_query->queried_object;
    echo esc_attr($term->name); ?>

    タームが親タームか子タームかを ! $oyaterm->parent == 0 など使って分岐して上記の処理を行いたいのですが、どのようにすればよいでしょうか?
    何となく分かりかけているのですが、どうしても最後がうまくいきません・・・

    次のように条件分岐します。
     

    if( $term_p != 0 ) {
    	/* 子タクソノミーの場合の処理 */
    } else {
    	/* 親タクソノミーの場合の処理 */
    }

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「記事が属するタクソノミーを階層で表示したい」には新たに返信することはできません。