【wp】親カテゴリに所属する全ての子カテゴリ表示する方法

スポンサーリンク

2015.10.19 | wordpress




 wp_list_categoriesを使用し、サイドバーにカテゴリー一覧を表示する方法

親カテゴリー一覧を表示するのはダイナミックサイドバーを使用すれば簡単にできます。 ですが、それに属する子カテゴリー一覧を表示するのはどうすればいいの?と困ってしまいます。

私も分からずに、何度か検索して、いくつかのサイトから知識をえることができました。
そして、ようやく親カテゴリに所属する全ての子カテゴリ表示する方法がわかりました。

このブログでは、その知識を元に、トップメニュー部分に親カテゴリーを表示して、サイドバーのカテゴリー一覧は、トップメニューで選択した 子カテゴリーの一覧を表示しています。

親カテゴリーと子カテゴリー

今回は、「wp_list_categories」を使用し、サイドバーのカテゴリー一覧に親カテゴリに所属する全ての子カテゴリ表示する方法を説明いたします。

sidebar.phpのコード

                     
<?php
   //親カテゴリー取得
    $cat_now = get_the_category();
    $cat_now = $cat_now[0];
   
   //親カテゴリーのid取得
    $parent_id = $cat_now->category_parent;

   //カテゴリー一覧のパラメーター設定
    $args = array(
        'title_li' => '',      //タイトルを表示させない
        'orderby'  => 'id',    //カテゴリーのid順で並べる 
        'order'    => 'ASC',   //カテゴリーのid順の昇順
        'child_of' => $parent_id,//親カテゴリーのid
    )
?>
    <?php wp_list_categories($args); ?>

まず最初に、$parent_id = $cat_now->category_parent で親カテゴリーのidを取得します。

次に、配列に「child_of」に親カテゴリーのidをセットします。

そして、その配列を、 wp_list_categories()に渡せば、サイドバーのカテゴリー一覧に親カテゴリに所属する全ての子カテゴリを表示することができます。

このブログで説明すると、ヘッダーにある「WEB」を選択した場合、子カテゴリーとして「wordpress」[SEO]がサイドバーに表示されます。

その他の配列に関する説明として、「title_li」は、タイトルを表示するかどうかですが、現在はタイトルを表示させないため何も設定していません。 「orderby」では、idの表示順を設定します。今回は、昇順で並べるようにしてあります。

これで、サイドバーにカテゴリー一覧を表示することができます。
わかれば簡単ですが、調べて試すとなると結構時間がかかります。

まとめ

親カテゴリに所属する全ての子カテゴリ表示するには

・親カテゴリーのidを取得
・wp_list_categories()の配列にセット

この2点だけです。ぜひ試してみてください!!

参考記事
php wp_list_categories( パラメータ )
条件などを指定してカテゴリー一覧を出力する [wp_list_categories] 使い方


いつもクリックありがとうございます

ブログランキング・にほんブログ村へ
スポンサーリンク




コメントを残す