特定の親カテゴリーの子カテゴリーをリンク有り無しそれぞれでリスト表示する方法
2015/9/30
2021/10/18
17534 views
子カテゴリーリスト表示
ワードプレスで、トップページやサイドメニューに投稿記事のカテゴリーの一覧リストを表示したい場合などあると思います。
この場合に使える、特定の親に属する子カテゴリーの一覧を表示させる方法を記載しています。
WPのテンプレートタグである「wp_list_cats」と「get_categories」を使って表示させることができます。
リンク付きで表示させる場合
1. 「wp_list_cats」を使った場合の記述
「wp_list_cats」というテンプレートタグを使って表示できます。
自動で<li>と<a>タグに囲まれて出力されます。
<ul>
<?php
wp_list_categories(array(
'child_of' => '2',//※特定親のカテゴリーID
'title_li' => '',//見出しをなしに
'show_count' => '1',//記事数(表示しない場合は0へ)
'orderby' => 'ID',//ソート規則
));
?>
</ul>
2. 「get_categories」を使った場合の記述
「get_categories」というテンプレートタグを使っても表示できます。
タグは自動で付与されないので任意のタグで組むことができます。
<ul>
<?php
$cats = get_categories(array(
'child_of' => '2',//※特定親のカテゴリーID
'title_li' => '',//見出しをなしに
'orderby' => 'ID',//ソート規則
));
foreach($cats as $cat) {
echo '<li><a href="' . get_category_link($cat->term_id) . '">' . $cat->name. '(' .$cat->count. ')</a></li>';
}
?>
</ul>
※それぞれchild_of=”の部分に任意の親カテゴリーのIDを入力してください
リンクなしで表示させる場合
リンクなしで表示させたい場合は、「get_categories」を使いましょう。
<ul>
<?php
$cats = get_categories(array(
'child_of' => '2',//※特定親のカテゴリーID
'title_li' => '',//見出しをなしに
'orderby' => 'ID',//ソート規則
));
foreach($cats as $cat) {
echo '<li>'.$cat->name. '(' .$cat->count. ')</li>';
}
?>
</ul>
まとめ
ちなみに以前に記載していた<?php wp_list_cats() ;?>は現在非推奨となりました。
ご質問などあればお気軽にコメントくださいね。
はじめまして。
勉強になります。ありがとうございます。
恐れ入りますがもしよろしければ、
下記について教えていただけますでしょうか?
カテゴリページにて
子カテゴリごとに下記のように表示させたいのですが、どのように記述すれば良いのでしょうか?
■カテゴリページ(寿司)
盛合わせ(子カテゴリ名)
松(記事タイトル)
竹(記事タイトル)
梅(記事タイトル)
丼もの(子カテゴリ)
海鮮丼(記事タイトル)
うな丼(記事タイトル)
恐れ入ります。
よろしくお願いいたします。
三船さんコメントありがとうございます。
ご希望の表示は、ループを2つ記述することで可能ではあると思います。
child_ofの値を、”盛り合わせ”と”丼もの”のそれぞれで設定ください。
“カテゴリページ(寿司)”は、<a>タグなどで別途記述します。
もしくは、1つのループで記述したいということであれば、下記リンクの記事『「get_categories」で親子階層でのカテゴリー一覧を表示する方法』を参考にしてみてください。
https://zigzow.com/parentchildcatlist/
うまくいかない場合はお気軽にご相談ください。
ZIGZOWさん、
ご多忙のなか誠にありがとうございます。本当に助かります。
外出中なので戻り次第、教えていただいた通りにやってみます!
取り急ぎ御礼まで。
いえいえ。検証ください。
はじめまして。
参考にさせていただいてます。
下記内容を教えていただきたく。
□親カテゴリー一覧
↓
□親カテゴリーに属する子カテゴリー一覧
↓
□子カテゴリーの記事
全て別ページで表示したいのですが
どのように記述したらいいのか教えていただきたく。
お手数をおかけしますがよろしくお願いいたします。