この記事は公開から10年、最終更新日からも10年経過しています。内容が古くなっている可能性があります。
[WordPress/php]現在のカテゴリの小カテゴリ一覧を表示する
概要
WordPressにおいて、カテゴリのアーカイブページ等でそのカテゴリの子カテゴリ一覧を表示させるためのphp記述を調べたのでメモします。
表示イメージ
※私のサイト自身でこの表示方法を適用している例がないため、言葉での説明となってしまいます。ご了承下さい。
次のようなカテゴリ階層となっているサイトが存在するものとします。
A.トップ
└B.カテゴリ1−C.カテゴリ11┬D.カテゴリ111┬E.カテゴリ1111
│ ├F.カテゴリ1112
│ └G.カテゴリ1113
└H.カテゴリ112
このとき
・B.のアーカイブページでは、
C(記事数)
のように表示され、
・C.のアーカイブページでは、
D(記事数) H(記事数)
のように表示され、
・D.のアーカイブページでは
E(記事数) F(記事数) G(記事数)
のように表示したい時のPHPコードとなります。
参考サイト(有難うございます)
WordPress › フォーラム » その親カテゴリに属する子カテゴリをリスト表示させる方法
ソースコード
<?php $cat = get_category(get_query_var('cat')); //カテゴリーの IDより、カテゴリーの詳細データを取得 $children = wp_list_categories('echo=0&show_count=1&depth=1&hide_empty=0&title_li=&child_of=' . $cat->cat_ID); //wp_list_categories;リンク付きカテゴリーリストを取得し$childrenに設定 //echo=0;1だと表示、0なので値を変数に代入 //show_count=1;投稿数表示 //depth=1;表示されている階層下の子カテゴリのみ表示、2,3,4....と設定すると、更に小カテゴリ、更に小カテゴリ....を表示する //hide_empty=0;投稿がないカテゴリも表示する。1だと投稿があるカテゴリのみ表示 //title_li=;タイトルなし //child_of=' . $cat->cat_ID;現カテゴリ($cat->$cat_ID)の小カテゴリのみ表示。 ?> <?php if ($children != "<li>カテゴリーなし</li>" OR $children != "<li>No categories</li>") { ?> //カテゴリがあれば以下を実行 <ul> <?php echo $children; ?> //リンク付きカテゴリーリストを表示 ※各リストは<li></li>で囲まれて出力されます。 </ul> <?php } ?>
上記phpで生成されたHTMLの例
※C.のアーカイブページを表示した際の例
<ul> <li><a href="http://●●●/category/カテゴリ1/カテゴリ11/">カテゴリ111</a>(6) </li> <li><a href="http://●●●/category/カテゴリ1/カテゴリ11/">カテゴリ112</a>(24) </li> </ul>
最後に
・仕事で必要に迫られたのと、ネットで頑張って検索すればなんとかなりました。