サポート » 使い方全般 » 子カテゴリのリストを表示させるには

  • 解決済 sakitamax

    (@sakitamax)


    カテゴリを使って階層を表現しています。
    すべての記事が以下のようなurlで表示されます。

    http://example.com/親カテゴリのスラッグ/子カテゴリのスラッグ/記事のスラッグ.html

    以下のコードは「archive.php」で親カテゴリを表示した時に、その親カテゴリに属する子カテゴリだけを表示するために書きました。

    <?php if(is_category('3')): ?>
    				<ul>
    <?php wp_list_categories('title_li=&depth=1&child_of=3'); ?>
    				</ul>
    
    <?php elseif(is_category('25')): ?>
    				<ul>
    <?php wp_list_categories('title_li=&depth=1&child_of=25'); ?>
    				</ul>
    
    <?php elseif(is_category('30')): ?>
    				<ul>
    <?php wp_list_categories('title_li=&depth=1&child_of=30'); ?>
    				</ul>
    
    <?php elseif(is_category('1')): ?>
    
    <?php else : ?>

    すべての記事は子カテゴリだけにチェックを入れており、親カテゴリにはチェックを入れていません。孫カテゴリはありません。

    上記のコードでは、例えば、親カテゴリ「3」をクリックしたら、表示されるのは「3」のカテゴリに属する子カテゴリのリストが表示され、親カテゴリ(上記のコードだとカテゴリ3、25、30)でなかったり、未分類(カテゴリ0)だったりしたときは、何も表示しません。

    最初はこのコードでうまくいっていたはずなのですが、カテゴリーをドンドン増やしていったら、時々、IDで親カテゴリを指定しているにもかかわらず、引っかからない親カテゴリが出てきました。

    そこで質問なのですが、ひとつは上記コードではなく、単純に子カテゴリがあれば子カテゴリを表示、子カテゴリがなければ何も表示しないというようなコードは可能でしょうか?

    もう一つは、どうして上記のコードで引っかからない親カテゴリがあるのでしょうか?

    2つ諮問して申し訳ありません。どちらかにご回答願えればと思います。m(_ _)m

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

    (@sakitamax)

    最後の行、「2つ諮問」ではなく「2つ質問」です。
    重ねがさね、申し訳ありません。m(_ _)m

    トピック投稿者 sakitamax

    (@sakitamax)

    すみません。自己解決しました。
    もっといい方法があるのかもしれませんが、とりあえず、希望の表示が出来ましたので、解決済みとします。

    <?php $cat_id = get_query_var('cat'); ?>
    <?php
    $children = wp_list_categories('title_li=&depth=1&child_of='.$cat_id.'&echo=0');
    
    if ($children != "<li>カテゴリーなし</li>") { ?>
    
    				<ul>
    <?php echo $children; ?>
    				</ul>
    
    <?php } else { ?>
    
    <?php
    $cat_now = get_the_category();
    $cat_now = $cat_now[0];
    $parent_id = $cat_now->category_parent;
    ?>
    				<ul>
    <?php wp_list_categories("title_li=&depth=1&child_of=$parent_id"); ?>
    				</ul>
    
    <?php } ?>
2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「子カテゴリのリストを表示させるには」には新たに返信することはできません。