サポート » 使い方全般 » 親子関係のあるタクソノミーの一覧を表示させたい

  • 解決済 ktarotaro

    (@ktarotaro)


    カスタム投稿タイプのアーカイブページのテンプレートに下記のような親子関係のあるパターンと無いパターンが混在しているタクソノミーの一覧を表示させたいと考えております。

    親A
     子A
    ・記事タイトル
    ・記事タイトル
     子B
    ・記事タイトル
    ・記事タイトル
    親B
    ・記事タイトル
    ・記事タイトル
    親C
     子D
    ・記事タイトル
    ・記事タイトル

    フォーラムのタクソノミーで親子関係がある記事をすべて一覧表示したい
    というトピックに記載されている内容がとても近いのですが、違いは、
    親B
    ・記事タイトル
    ・記事タイトル

    の部分でして、子タクソノミーが無いパターンが含まれることです。

    タクソノミーで親子関係がある記事をすべて一覧表示したいに記載されております下記コードの最初の get_terms(‘parent=0’)で 小タクソノミーを持っているかどうか判別できれば、小タクソノミーが無い場合のみ記事を表示という処理をして実現できるのではないかというところまでは考えたのですが、小タクソノミーを持っているかどうかの判定の仕方がわかりません。
    そもそも、私の考え方が正しいのかもわかりません。
    ご教示いただけると幸いです。

    $categories = get_terms(‘samplecat’,’orderby=order&order=ASC&parent=0′);
    foreach ( $categories as $cat ) {
    echo ‘<h1>’ . esc_html($cat->name) . ‘</h1>’;
    $children = get_terms(‘samplecat’,’hierarchical=0&orderby=order&order=ASC&child_of=’.$cat->term_id);

    foreach ( $children as $child ) {
    echo ‘<h2>’ . esc_html($child->name) . ‘</h2>’;
    $catslug = $child->slug;
    $myquery = ‘post_type=sample&samplecat=’ . $catslug . ‘&showposts=-1’;
    ?>

      <?php query_posts($myquery); ?>
      <?php if(have_posts()): while(have_posts()): the_post(); ?>

    • “><?php the_title(); ?>
    • <?php endwhile; endif; ?>

    <?php
    }
    }
    ?>

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • if( count( $children ) == 0 ) {
    // 子供なし

    という判定も可能ではないでしょうか。

    WordPressでwp_list_categoriesを使わずにget_termsでカスタムタクソノミー (カスタム分類) のターム一覧を表示する

    トピック投稿者 ktarotaro

    (@ktarotaro)

    Tsuyoshi. 様

    ありがとうございます!
    無事にif( count( $children ) == 0 )にて希望の動作が実現できました。

    具体的には下記のようにいたしました。

    <?php
    $categories = get_terms('samplecat','orderby=order&order=ASC&parent=0');
    foreach ( $categories as $cat ) {
    echo '<h1>' . esc_html($cat->name) . '</h1>';
    $children = get_terms('samplecat','hierarchical=0&orderby=order&order=ASC&child_of='.$cat->term_id);
    if( count( $children ) == 0 ) {
    //タクソノミー出力
    }
    foreach ( $children as $child ) {
    echo '<h2>' . esc_html($child->name) . '</h2>';
    $catslug = $child->slug;
    $myquery = 'post_type=sample&samplecat=' . $catslug . '&showposts=-1';
    ?>
    
    <?php query_posts($myquery); ?>
    <?php if(have_posts()): while(have_posts()): the_post(); ?>
    "><?php the_title(); ?>
    <?php endwhile; endif; ?>
    
    <?php
    }
    }
    ?>

    また、大変ためになるページのご紹介もいただきましてありがとうございました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「親子関係のあるタクソノミーの一覧を表示させたい」には新たに返信することはできません。