wp_list_categories()
はカテゴリーのリストをリンク付で表示させます。リンクをクリックするとそのカテゴリーに属する投稿を表示させることが出来ます。サイドバーやフッターのナビゲーションで使うことが多いです。その他トップページや固定ページのテンプレートでも使ったりします。
記述方法
<?php wp_list_categories( $args ); ?>
パラメータ
show_option_all
文字列を設定すると、全てのカテゴリーの記事を表示するページ、つまりトップページへのリンクを、カテゴリーリストの先頭に表示します。リンクテキストはこのパラメータで指定した文字列になります。デフォルトは非表示です。
<?php wp_list_categories('show_option_all=トップページ'); ?>
orderby
カテゴリーのリストのソート(並び順)。デフォルトではカテゴリー名でソートします。
- name – カテゴリー名のアルファベット順(初期値)
- ID – カテゴリーID
- slug – カテゴリースラッグ
- count – カテゴリーの投稿数
- term_group – タームグループ
<?php wp_list_categories('orderby=ID'); ?>
order
カテゴリーのソート順(並び順)。
- ASC – 昇順(初期値)
- DESC – 降順
<?php wp_list_categories('orderby=ID&order=DESC'); ?>
show_count
各カテゴリーに属する投稿数を表示させるかどうか。初期値は非表示。
- 1 (true) – 表示
- 0 (false) – 非表示(初期値)
<?php wp_list_categories('orderby=ID&show_count=1'); ?>
hide_empty
投稿のないカテゴリーも表示させるか否か。
- 1 (true) – 空カテゴリーを隠す(初期値)
- 0 (false) – 全て表示
<?php wp_list_categories('orderby=ID&hide_empty=0'); ?>
child_of
このパラメーターで指定したカテゴリーIDの子カテゴリーのみ表示します。初期値なし。このパラメータを使うと、hide_empty パラメータに false がセットされます。
<?php wp_list_categories('orderby=ID&child_of=5'); ?>
exclude
指定したカテゴリー(複数選択可)を表示させないようにする。表示させないカテゴリーID をカンマ区切りで昇順に指定する。child_of パラメータは自動的に無効となります。
<?php wp_list_categories('exclude=1,4'); ?>
exclude_tree
結果から除外するカテゴリーツリー。
include
指定したカテゴリーIDのみを表示させる。複数指定可能。カンマ区切りで昇順に指定する。
<?php wp_list_categories('include=4,5'); ?>
hierarchical
子カテゴリーを親カテゴリーに属するツリー表示にするかどうか。初期値はツリー表示にさせる。
- 1 (true) – ツリー表示(初期値)
- 0 (false) – 親子同レベル
<?php wp_list_categories('hierarchical=0'); ?>
title_li
カテゴリーリストの外側に表示するタイトルと表示形式。デフォルトは “_Categories”。このパラメータを中味を空で指定すると、カテゴリーリストの外側には何も表示しません。
<?php wp_list_categories('title_li=<h2>これがカテゴリーだ</h2>'); ?>
number
表示するカテゴリー数を設定します。初期値は無制限。
<?php wp_list_categories('number=5'); ?>
echo
結果(カテゴリーのリスト)を表示するか、変数等へ値を返すか。
- 1 (true) – 表示(初期値)
- 0 (false) – 値を返す
<?php
$parentheses = wp_list_categories('echo=0&show_count=1&pad_counts=0');
$parentheses = str_replace(array('(',')'), array('[',']'), $parentheses);
echo $parentheses;
?>
上記記述でカテゴリーリストに投稿数を表示させて、「 ( , ) 」を「 [ , ] 」に変更させる。「$parentheses」は変数なのでどのような文字列でもOK。
depth
カテゴリー階層のどのレベルまでをカテゴリーリストに表示させるかを指定します。初期値は「0」で全親子カテゴリーを出力します。
- 0 – 全ての親子カテゴリーを出力 (初期値)
- -1 – 全てのカテゴリーをフラット(インデントなし)形式で出力(hierarchical パラメータより優先)
- 1 – 最上位カテゴリーのみ出力
- n – n(数値)階層目までを出力。’2′ と指定すれば、最上位とすぐ下の子カテゴリーまでを出力。
<?php wp_list_categories('depth=2'); ?>
current_category
ある投稿を表示させているときに属するカテゴリーに「current-cat」と言うクラスや親カテゴリーには「current-cat-parent」と言うクラスをつける。メニューのハイライト表示に使える。
<?php
$catid = get_the_category();
$myCat = $catid[0]->cat_ID;
wp_list_categories('current_category='.$myCat);
?>
pad_counts
子カテゴリーの投稿数を含めて親カテゴリーの投稿数を計算するかどうか。
- 1 (true)
- 0 (false) – 初期値
<?php wp_list_categories('show_count=1&pad_counts=0'); ?>
taxonomy
返す分類名。
- category – デフォルト
- taxonomy – または登録されたタクソノミーのいずれか
walker
リストをレンダリングする Walker クラス。
- object – Walker_Category または Walker を拡張する Class インスタンス
カテゴリーリストのマークアップ
<?php wp_list_categories(); ?>とだけ書くと、生成されるコードは次のようになります。
<li class="categories">カテゴリー
<ul>
<li class="cat-item cat-item-ID"><a href="http://~/" title="カテゴリー概要">カテゴリー名</a></li>
<li class="cat-item cat-item-ID"><a href="http://~/" title="カテゴリー概要">カテゴリー名</a>
<ul class="children">
<li class="cat-item cat-item-ID"><a href="http://~/" title="カテゴリー概要">子カテゴリー名</a></li>
<li class="cat-item cat-item-ID"><a href="http://~/" title="カテゴリー概要">子カテゴリー名</a></li>
</ul>
</li>
<li class="cat-item cat-item-ID"><a href="http://~/" title="カテゴリー概要">カテゴリー名</a></li>
</ul>
</li>
カテゴリー一覧を表示しているときには、そのカテゴリーにのみ「current-cat」というクラスがつきます。
...
<li class="cat-item cat-item-ID">(その他のカテゴリー)</li>
<li class="cat-item cat-item-ID current-cat">(現在表示しているカテゴリーアーカイブのカテゴリー)</li>
<li class="cat-item cat-item-ID">(その他のカテゴリー)</li>
...