[WordPress/php]現在のカテゴリの小カテゴリ一覧を表示する

  • スポンサーリンク

  • スポンサーリンク

[WordPress/php]現在のカテゴリの小カテゴリ一覧を表示する

スクリーンショット 2014-12-28 03.33.45

概要

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 } ?>

wp_list_categories

上記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>

最後に

・仕事で必要に迫られたのと、ネットで頑張って検索すればなんとかなりました。


  • スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA