- 更新日: 2015年4月17日
- WordPress
WordPressで親カテゴリーに属する子カテゴリーの一覧を出力
WordPress で親カテゴリーに属する、子カテゴリーの一覧リンクを出力する方法です。以下のように、WordPress のカテゴリー構造が親子の関係になっているケース。そして、記事は子カテゴリー4〜12に属しているものとします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
親カテゴリー1 |- 子カテゴリー4 |- 子カテゴリー5 |- 子カテゴリー6 親カテゴリー2 |- 子カテゴリー7 |- 子カテゴリー8 親カテゴリー3 |- 子カテゴリー9 |- 子カテゴリー10 |- 子カテゴリー11 |- 子カテゴリー12 |
記事ページ(single.php)で親カテゴリーに属する子カテゴリーの一覧を出力
例えば、とある記事Aが子カテゴリー6に属しているとします。その記事ページでは、子カテゴリー6の親である親カテゴリー1に属する、子カテゴリー4,5,6のみのカテゴリーの一覧を出力したい場合です。簡単に言うと、記事Aのページでは、以下のカテゴリ情報の一覧リンクのみを出力したいとします。
子カテゴリー4
子カテゴリー5
子カテゴリー6
子カテゴリー7〜12は表示させないようにする。この場合は、以下の PHP コードで実現できます。
1 2 3 4 5 6 7 8 9 10 |
<?php if( is_single() ) { $cats = get_the_category(); $cat = $cats[0]; if ( $cat->category_parent ) { $parent_cat_id = $cat->category_parent; wp_list_categories('show_count=1&title_li=&child_of=' . $parent_cat_id); } } ?> |
このコードで、記事Aのページでは、子カテゴリー4〜6のみのリンク一覧が表示されます。wp_list_categories() の引数で指定するパラメータに、child_of を指定しするのが重要なポイントです。child_of で指定したカテゴリーIDの、子カテゴリーの一覧が出力されます。それぞれのパラメータの意味は以下。
child_of=
この child_of= のパラメータを指定するのがポイントで、これで指定したカテゴリー ID の子カテゴリーのみ表示します。
title_li=
箇条書きの外側に表示するタイトルと表示形式を指定する。
show_count=1
各カテゴリーに投稿数を表示するかどうか。1 を指定すると投稿数を表示する。
注意点としては、$cat = $cats[0]; で記事が属するカテゴリーの最初のカテゴリーを取得していますので、その親カテゴリーに属する子カテゴリーの一覧リンクを出力します。記事が複数の子カテゴリーに属する場合は、注意が必要です。複数の子カテゴリー全てに対応するには、もう一歩コードの修正が必要となります。
カテゴリーページ(category.php)で親カテゴリーに属する子カテゴリーの一覧を出力
同様に、カテゴリーページで共通の親カテゴリーに属する子カテゴリーの一覧を出力する場合。例えば、子カテゴリー4のカテゴリーページで、共通の親である親カテゴリー1に属する、子カテゴリー4,5,6を出力したいケースです。
1 2 3 4 5 6 7 8 9 10 11 |
<?php if( is_category() ) { $category_name = single_cat_title('', false); $cat_id = get_cat_ID($category_name); $cat = get_category( $cat_id ); if ( $cat->category_parent ) { $parent_cat_id = $cat->category_parent; wp_list_categories('show_count=1&title_li=&child_of=' . $parent_cat_id); } } ?> |
このコードで、子カテゴリー4のページでは、以下のように子カテゴリーのリンクのみが表示される。
子カテゴリー4
子カテゴリー5
子カテゴリー6
記事ページやカテゴリーページごとに、表示させたいカテゴリー情報のリンク一覧を変更したい場合に使える WordPress テクニックでした。使っている WordPress の API 関数の詳細は、参考リンクからお願いします。
- – 参考リンク –
- テンプレートタグ/wp list categories – WordPress Codex 日本語版
- テンプレートタグ/get the category – WordPress Codex 日本語版
- テンプレートタグ/single cat title – WordPress Codex 日本語版
- 関数リファレンス/get cat ID – WordPress Codex 日本語版
- 関数リファレンス/get category – WordPress Codex 日本語版
- WordPress の関連記事
- WordPressをTwitter Bootstrapでレスポンシブデザイン対応
- WordPressブログに更新日を表示
- WordPressにOGP設定・プラグインなしでFacebook/Twitter Cards対応
- WordPressでパンくずリスト・複数の親子カテゴリーを表示
- WordPressでプライベートな非公開ブログを運用
- BackWPupでエラー ERROR: Dropbox API: (35)
- ブログ・WordPress記事をFacebookに自動投稿するIFTTT設定
- RSS Graffitiが終了…代替にはIFTTTが使える
- wp_list_categoriesでリンクなしで投稿数ゼロのカテゴリを表示 – WordPress
- WordPressでmeta descriptionを設定(プラグインなし版)
Leave Your Message!