• 只今初心者ながらにWordPressのテーマをカスタマイズしている途中です。
    今回はカテゴリについて一人では解決できない問題に悩んでいるのでお力をお借りしたく投稿致しました。

    現在親・子・孫の3つの階層構造でブログを構築しているのですがサイドバーに、

    親カテゴリー内では子カテゴリーのみ表示(孫カテゴリーは表示させない。)
    子カテゴリー内では孫カテゴリーのみ表示
    孫カテゴリー内では何も表示しない

    というカテゴリーのリンクを設置したいのですが、上手くいかず悩んでいます。

    <?php
    $cat_now = get_the_category();
    $cat_now = $cat_now[0];
    $parent = get_category($cat->parent);
    $link = get_category_link( $parent );
    $parent_id = $cat_now->category_parent;

    ?>

    <?php if ( $cat->parent ) { ?>

    <?php wp_list_categories(“title_li=&child_of=$parent_id&depth=1&show_count=1”); ?>

    今はこのような形で実装しているのですが、これだと親カテゴリー表示時に子カテゴリーと一緒に孫カテゴリーまでも表示してしまいます。

    どなたか解決策を教えて頂ける方がおりましたら、助けて頂けるとありがたいです。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • Pite さんのコードで確認すべきポイントは $cat_now でカテゴリーを取得しているのに、親カテゴリー $parent では $cat を参照している点です。$catはどこの子…?ってことですね。
    あと、child_of で現在のカテゴリのIDを指定すればその子カテゴリーのリストがでます。
    親カテゴリーなら子カテゴリー、子カテゴリーなら孫カテゴリーのリスト。
    で、孫カテゴリーには子がないので、何も出力されません。

    <?php
    $cat_now = get_the_category();
    $cat_now = $cat_now[0];
    wp_list_categories( "title_li=&child_of={$cat_now->term_id}&depth=1&show_count=1" );
    ?>

    親だとか子だとか孫だとか呼んで考えてたら、ややこしくなってしまいますね…。
    回答中に混乱してしまいました(笑)

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック「孫カテゴリーを表示させず、子カテゴリーのみを表示する方法について」には新たに返信することはできません。