サポート » 使い方全般 » トップページでは親カテゴリのみ表示したい

  • はじめて投稿します。
    色々調べましたがわかりませんでしたので、教えてください。

    サイドバーの表示で、トップページには親カテゴリのみを表示し、親カテゴリのリンクをクリックしたその先で子カテゴリをリスト表示したいと思っています。

    こちらの投稿を参照し、

    sidebar.phpに、以下の記述を追加しました。

    変更前

    <?php wp_list_categories('sort_column=name&hierarchical=0'); ?>

    変更後

    <?php
    $cat = get_category(get_query_var('cat'));
    $id = $cat->category_parent ? $cat->category_parent : $cat->cat_ID;
    $children = wp_list_categories('echo=0&title_li=&child_of=' . $id);
    if ($children != "<li>カテゴリーなし</li>")
    if ($children != "<li>No categories</li>") { ?>
    <h2><?php echo get_category($id)->cat_name; ?></h2>
    <ul>
    <?php echo $children; ?>
    </ul>
    <?php } ?>

    こちらの表示で、親カテゴリのリンクをクリックすることで、サイドバーに小カテゴリがリスト表示されるようになりました。

    しかしながら、トップページのサイドバーには親カテゴリと小カテゴリの両方ともが表示されてしまっています。

    これをトップページでは、親カテゴリのみをリスト表示し、小カテゴリは表示しない設定としたいのですが、どのようにすればよろしいでしょうか?

    ご教授いただければ幸いです。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • モデレーター jim912

    (@jim912)

    yujiwordさん、こんにちは。

    wp_list_categories のdepthパラメータを使うと実現できます。

    トピック投稿者 yujiword

    (@yujiword)

    jim912さん、ご回答ありがとうございます。

    本当に初心者(PHPが全然わかってない)な質問で申し訳ないのですが、
    wp_list_categories のdepthパラメータを使って、具体的にどうすればよいでしょうか?

    最上位のカテゴリを示すには、以下のようにすれば良いと思い、

    <?php wp_list_categories('depth=1&title_li='); ?>

    上記表示にしましたが、この一行だけだと、最上位のカテゴリしか表示されず、トップページも、カテゴリをクリックしたその先のページも同じように親カテゴリしか表示されません。

    最初の投稿で記載した

    <?php
    $cat = get_category(get_query_var('cat'));
    $id = $cat->category_parent ? $cat->category_parent : $cat->cat_ID;
    $children = wp_list_categories('echo=0&title_li=&child_of=' . $id);
    if ($children != "<li>カテゴリーなし</li>")
    if ($children != "<li>No categories</li>") { ?>
    <h2><?php echo get_category($id)->cat_name; ?></h2>
    <ul>
    <?php echo $children; ?>
    </ul>
    <?php } ?>

    こちらの記述では、トップページで親カテゴリをクリックした先のページではサブカテゴリ表示となっています。(トップページでは親子ともに表示されています)

    上記をdepthパラメータを使ってどうにかカスタマイズすれば、トップページでは親カテゴリ(最上位カテゴリ)のみ表示され、親カテゴリページに進んだあと、サブカテゴリのみ表示できるような分岐ができますでしょうか?

    申し訳ございませんが、もう少しだけ教えていただけると助かります。

    モデレーター jim912

    (@jim912)

    yujiwordさん

    トップとカテゴリーページでの差は wp_list_categories のパラメータになります。
    つまり、トップとカテゴリーで、 wp_list_categories のパラメータを変えてあげればよいです。

    どのように変えるかというと、条件分岐タグを使って分岐処理を行います。

    分岐処理の書き方は、条件分岐タグのスニペットが参考になります。

    トピック投稿者 yujiword

    (@yujiword)

    jim912さん

    ご回答ありがとうございました!
    条件分岐タグを使って、無事できました。

    今後ともよろしくお願いします。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「トップページでは親カテゴリのみ表示したい」には新たに返信することはできません。