当サイト、Codex 日本語版は今後積極的な更新は行わない予定です。後継となる新ユーザーマニュアルは、https://ja.wordpress.org/support/ にあります。
万が一、当サイトで重大な問題を発見した際などは、フォーラムWordSlack #docs チャンネルでお知らせください。</p>

「テンプレートタグ/wp list categories」の版間の差分

提供: WordPress Codex 日本語版
移動先: 案内検索
(en:Template Tags/wp_list_categories 17:24, 2 July 2014 Donwilson 版を反映して、残りを和訳。)
1行目: 1行目:
{{Old}}
 
 
 
<div id="Description">
 
<div id="Description">
 
== 説明 ==
 
== 説明 ==
 
</div>
 
</div>
  
リンク付き[[用語集#Category|カテゴリー]]リストを表示します。カテゴリーリンクをクリックすると、[[テンプレート階層|テンプレート階層ルール]]に基づく適切な[[Category Templates|カテゴリーテンプレート]]を用いたカテゴリーページに、そのカテゴリーに属する全ての記事が表示されます。
+
リンク付き[[用語集#Category|カテゴリー]]リストを表示します。
 +
カテゴリーリンクをクリックすると、[[テンプレート階層|テンプレート階層ルール]]に基づく適切な[[Category Templates|カテゴリーテンプレート]]を用いたカテゴリーページに、そのカテゴリーに属する全ての投稿が表示されます。
  
 +
'''参考''': '''wp_list_categories()''' は、WordPress 2.1 で非推奨となった [[テンプレートタグ/list_cats|list_cats()]] および [[テンプレートタグ/wp_list_cats|wp_list_cats()]] の後継で、この二つとほぼ同じように動作します。
  
'''注: wp_list_categories()''' は、WordPress 2.1 で非推奨となった <code>[[テンプレートタグ/list_cats|list_cats()]]</code> および <code>[[テンプレートタグ/wp_list_cats|wp_list_cats()]]</code> の後継で、この二つとほぼ同じように動作します。
+
フォーマットしていない結果が必要な場合は、[[関数リファレンス/get_categories|get_categories()]] をお試しください。
  
 
<div id="Usage">
 
<div id="Usage">
14行目: 14行目:
 
</div>
 
</div>
  
  <?php wp_list_categories( $args ); ?>  
+
  <?php wp_list_categories( $args ); ?>
  
<div id="Default_Usage">
+
<div id="Default Usage">
===デフォルトでの使い方===
+
=== デフォルトの使い方 ===
 
</div>
 
</div>
  
25行目: 25行目:
 
'orderby'            => 'name',
 
'orderby'            => 'name',
 
'order'              => 'ASC',
 
'order'              => 'ASC',
'show_last_update'  => 0,
 
 
'style'              => 'list',
 
'style'              => 'list',
 
'show_count'        => 0,
 
'show_count'        => 0,
37行目: 36行目:
 
'exclude_tree'      => '',
 
'exclude_tree'      => '',
 
'include'            => '',
 
'include'            => '',
'hierarchical'      => true,
+
'hierarchical'      => 1,
 
'title_li'          => __( 'Categories' ),
 
'title_li'          => __( 'Categories' ),
'number'            => NULL,
+
'show_option_none'  => __( 'No categories' ),
 +
'number'            => null,
 
'echo'              => 1,
 
'echo'              => 1,
 
'depth'              => 0,
 
'depth'              => 0,
45行目: 45行目:
 
'pad_counts'        => 0,
 
'pad_counts'        => 0,
 
'taxonomy'          => 'category',
 
'taxonomy'          => 'category',
'walker'            => 'Walker_Category' ); ?>
+
'walker'            => null
 +
); ?>
 
</pre>
 
</pre>
  
デフォルトでは次のように表示します。
+
デフォルトでは次のように表示します:
 
* 全カテゴリーページへのリンクなし
 
* 全カテゴリーページへのリンクなし
 
* リストはカテゴリー名の昇順
 
* リストはカテゴリー名の昇順
* (各カテゴリーに属する最後に更新された記事の)最終更新日は非表示
+
<!-- バージョン 3.4 で削除された。 * (各カテゴリーに属する最後に更新された記事の)最終更新日は非表示 -->
 
* 番号なし箇条書きリスト形式で表示
 
* 番号なし箇条書きリスト形式で表示
 
* 投稿数は非表示
 
* 投稿数は非表示
 
* 投稿のあるカテゴリーのみ表示
 
* 投稿のあるカテゴリーのみ表示
* カテゴリー概要を title 属性にセット
+
* カテゴリーの「説明」を title 属性にセット
 
* 子カテゴリーの制限なし
 
* 子カテゴリーの制限なし
 
* フィードへのリンクなし/リンク画像なし
 
* フィードへのリンクなし/リンク画像なし
 
* 表示カテゴリーの指定/除外なし
 
* 表示カテゴリーの指定/除外なし
* 現在のカテゴリーを CSS クラスサフィックス ' current-cat' とともに表示
+
* 現在のカテゴリーを CSS クラスサフィックス 'current-cat' とともに表示
 
* カテゴリーレベルをインデント表示(ネスト表示、ツリー表示)
 
* カテゴリーレベルをインデント表示(ネスト表示、ツリー表示)
 
* リストの前に、見出しとして「Category」(日本語化ファイルで定義されていればその文字列)を表示
 
* リストの前に、見出しとして「Category」(日本語化ファイルで定義されていればその文字列)を表示
* SQL LIMIT なし(<code>'number' => 0</code> は上記初期値に載っていない)
+
* SQL LIMIT なし
 
* リストを表示(バージョン 2.3 以降では、表示/値の取得を選べる)
 
* リストを表示(バージョン 2.3 以降では、表示/値の取得を選べる)
 
* 表示する階層の深さ制限なし
 
* 表示する階層の深さ制限なし
74行目: 75行目:
 
; show_option_all  
 
; show_option_all  
 
: (''文字列'') <!-- A non-blank values causes the display of a link to all categories if the style is set to list.  The default value is not to display a link to all. -->ブランク以外の文字列を設定すると、全カテゴリーの記事を表示するページ(ブログのトップページ<!-- get_bloginfo('url') -->)へのリンクを、カテゴリーリストの先頭に表示します。リンクテキストはこのパラメータで指定した文字列です。デフォルトでは表示しません。
 
: (''文字列'') <!-- A non-blank values causes the display of a link to all categories if the style is set to list.  The default value is not to display a link to all. -->ブランク以外の文字列を設定すると、全カテゴリーの記事を表示するページ(ブログのトップページ<!-- get_bloginfo('url') -->)へのリンクを、カテゴリーリストの先頭に表示します。リンクテキストはこのパラメータで指定した文字列です。デフォルトでは表示しません。
 +
 
; orderby  
 
; orderby  
: (''文字列'') カテゴリーのソート項目。初期値はカテゴリー名でソート。有効値:
+
: (''文字列'') カテゴリーのソート項目。初期値はカテゴリー名でソート。有効な値は:
 
:* <code>ID</code> - カテゴリーID
 
:* <code>ID</code> - カテゴリーID
 
:* <code>name</code> - カテゴリー名のアルファベット順(初期値)
 
:* <code>name</code> - カテゴリー名のアルファベット順(初期値)
81行目: 83行目:
 
:* <code>count</code> - カテゴリーの投稿数
 
:* <code>count</code> - カテゴリーの投稿数
 
:* <code>term_group</code>
 
:* <code>term_group</code>
 +
 
; order  
 
; order  
: (''文字列'') カテゴリーのソート順。初期値は ''昇順''。有効値:
+
: (''文字列'') カテゴリーのソート順。初期値は''昇順''。有効な値は:
 
:* <code>ASC</code> - 昇順(初期値)
 
:* <code>ASC</code> - 昇順(初期値)
 
:* <code>DESC</code> - 降順
 
:* <code>DESC</code> - 降順
 +
 +
<!-- バージョン 3.4 で削除された。
 
; show_last_updated  
 
; show_last_updated  
 
: (''真偽値'') (各カテゴリーに属する)投稿の最終更新日を表示するか。初期値は非表示(FALSE)。
 
: (''真偽値'') (各カテゴリーに属する)投稿の最終更新日を表示するか。初期値は非表示(FALSE)。
 
:* <code>1 (true) </code> - 表示
 
:* <code>1 (true) </code> - 表示
 
:* <code>0 (false) </code> - 非表示(初期値)
 
:* <code>0 (false) </code> - 非表示(初期値)
 +
-->
 +
 
; style  
 
; style  
: (''文字列'') カテゴリーリストの表示形式。[[#カテゴリーリストのマークアップと装飾|マークアップの節]] を参照。有効値:
+
: (''文字列'') カテゴリーリストの表示形式。[[#カテゴリーリストのマークアップと装飾|マークアップの節]] を参照。有効な値は:
:* <code>list</code> - 箇条書き(<code><nowiki><li></nowiki></code>)(初期値)
+
:* <code>list</code> - 箇条書き(<code><nowiki><ul></nowiki></code>)(初期値)
 
:* <code>none</code> - 表示形式なし(各カテゴリーは <code><nowiki><br></nowiki></code>(改行)で区切られる)
 
:* <code>none</code> - 表示形式なし(各カテゴリーは <code><nowiki><br></nowiki></code>(改行)で区切られる)
 +
 
; show_count  
 
; show_count  
: (''真偽値'') 各カテゴリーに投稿数を表示するか。初期値は ''false''(非表示)。有効値:
+
: (''真偽値'') 各カテゴリーに投稿数を表示するか。初期値は ''false''(非表示)。有効な値は:
 
:* <code>1 (true)</code> - 表示
 
:* <code>1 (true)</code> - 表示
 
:* <code>0 (false)</code> - 非表示(初期値)
 
:* <code>0 (false)</code> - 非表示(初期値)
 +
 
; hide_empty  
 
; hide_empty  
 
: (''真偽値'') 投稿のないカテゴリーを非表示にするか。有効値:
 
: (''真偽値'') 投稿のないカテゴリーを非表示にするか。有効値:
 
:* <code>1 (true)</code> - 空カテゴリーを隠す(初期値)
 
:* <code>1 (true)</code> - 空カテゴリーを隠す(初期値)
 
:* <code>0 (false)</code> - 全て表示
 
:* <code>0 (false)</code> - 全て表示
 +
 
; use_desc_for_title  
 
; use_desc_for_title  
: (''真偽値'') [[Posts Categories SubPanel|カテゴリーの概要]]をリンク(アンカータグ)の <code>title</code> 属性に挿入(<nowiki><a title="<em>カテゴリー概要</em>" href="...></nowiki>のように)するか。初期値は ''true''(カテゴリー概要を挿入)。有効値:
+
: (''真偽値'') [[Manage_Categories_SubPanel|カテゴリーの説明]]をリンク(アンカータグ)の <code>title</code> 属性に挿入(<code><nowiki><a title="カテゴリーの説明" href="...></nowiki></code> のように)するか。初期値は ''true''(カテゴリーの説明を挿入)。有効な値は:
:* <code>1 (true)</code> - カテゴリー概要を挿入(初期値)
+
:* <code>1 (true)</code> - カテゴリーの説明を挿入(初期値)
 
:* <code>0 (false)</code> - 挿入しない
 
:* <code>0 (false)</code> - 挿入しない
 +
 
; child_of  
 
; child_of  
: (''整数'') このパラメータで指定したカテゴリーID の子カテゴリーのみ表示。初期値なし。このパラメータを使うと、'''hide_empty''' パラメータに ''false'' がセットされる。
+
: (''整数'') このパラメータで指定したカテゴリー ID の子カテゴリーのみ表示。初期値なし。このパラメータを使うと、'''hide_empty''' パラメータに ''false'' がセットされる。
 +
 
 
; feed  
 
; feed  
 
: (''文字列'')各カテゴリーの [[用語集#RSS|rss-2]] フィードへのリンクを表示、そのリンク文字列を設定する。初期値は ''フィードへのリンク・リンク文字列なし''。
 
: (''文字列'')各カテゴリーの [[用語集#RSS|rss-2]] フィードへのリンクを表示、そのリンク文字列を設定する。初期値は ''フィードへのリンク・リンク文字列なし''。
 +
 
; feed_type   
 
; feed_type   
 
: (''文字列'')  
 
: (''文字列'')  
 +
 
; feed_image  
 
; feed_image  
: (''文字列'') 各カテゴリーの rss-2 フィードへのリンクを画像(通常は RSSフィードアイコン)で表示したいときに、その画像の URI を設定。このパラメータは '''feed''' パラメータより優先(リンク文字列の替わりに画像)。初期値なし。
+
: (''文字列'') 各カテゴリーの rss-2 フィードへのリンクを画像(通常は RSS フィードアイコン)で表示したいときに、その画像の URI を設定。このパラメータは '''feed''' パラメータより優先(リンク文字列の代わりに画像)。初期値なし。
 +
 
 
; exclude  
 
; exclude  
: (''文字列'') 指定したカテゴリー(複数可)をリストから除外。除外するカテゴリーID をカンマ区切りで昇順に指定。[[#カテゴリーの指定・除外|用例]]を参照。'''child_of''' パラメータは自動的に無効となる。
+
: (''文字列'') 指定したカテゴリー(複数可)をリストから除外。除外するカテゴリーの ID をカンマ区切りで指定。[[#カテゴリーの指定・除外|用例]]を参照。'''child_of''' パラメータは自動的に無効となる。
 +
 
 
; exclude_tree   
 
; exclude_tree   
: (''文字列'') 結果から除外するカテゴリーツリー。[[Version 2.7.1|バージョン 2.7.1]] 以降のみ。
+
: (''文字列'') 結果から除外するカテゴリーツリー。除外するカテゴリー(ツリーの最上位)の ID をカンマ区切りで指定。'''include''' パラメータは空にすること。'''hierarchical''' パラメータが true の場合、'''exclude_tree''' の代わりに '''exclude''' が使われる。[[Version 2.7.1|バージョン 2.7.1]] 以降のみ。
 +
 
 
; include  
 
; include  
: (''文字列'') 指定したカテゴリーID のみリストに表示。カンマ区切りで昇順に指定。[[#カテゴリーの指定・除外|用例]]を参照。
+
: (''文字列'') 指定したカテゴリー ID のみリストに表示。カンマ区切りで指定。[[#カテゴリーの指定・除外|用例]]を参照。
 +
 
 
; hierarchical  
 
; hierarchical  
: (''真偽値'') サブカテゴリーを箇条書き項目の内側(親カテゴリーより下位レベル)に表示するか、親と同レベルで表示するか。(つまり、箇条書きを入れ子・ツリー表示にするか否か。)初期値は ''true''(サブカテゴリーを親より下位レベルに表示)。有効値:
+
: (''真偽値'') サブカテゴリーを箇条書き項目の内側(親カテゴリーより下位レベル)に表示するか、親と同レベルで表示するか。(つまり、箇条書きを入れ子・ツリー表示にするか否か。)初期値は ''true''(サブカテゴリーを親より下位レベルに表示)。有効な値は:
 
:* <code>1 (true)</code> - 入れ子表示(初期値)
 
:* <code>1 (true)</code> - 入れ子表示(初期値)
 
:* <code>0 (false)</code> - 親子同レベル
 
:* <code>0 (false)</code> - 親子同レベル
 +
 
; <span id="titleli">title_li</span>  
 
; <span id="titleli">title_li</span>  
: (''文字列'') 箇条書きの外側に表示するタイトルと表示形式。デフォルトは "_Categories"。このパラメータを中味を空で指定すると、箇条書きの外側には何も表示しません。[[#リストの見出しの表示/非表示|用例]]を参照。
+
: (''文字列'') 箇条書きの外側に表示するタイトルと表示形式。デフォルトは "Categories" (日本語化ファイルで定義されていればその文字列)。このパラメータを中味を空で指定すると、箇条書きの外側には何も表示しません。[[#リストの見出しの表示/非表示|用例]]を参照。
 +
 
 +
; show_option_none
 +
: (''文字列'') 表示するカテゴリーが一つも無いときに代わりに表示する文字列。デフォルトは "No categories" (日本語化ファイルで定義されていればその文字列)。
 +
 
 
; number  
 
; number  
: (''整数'') 表示するカテゴリー数を設定。SQL の LIMIT 値となります。初期値は無制限。
+
: (''整数'') 表示するカテゴリーの個数を設定。SQL の LIMIT 値となります。初期値は無制限。
 +
 
 
; echo  
 
; echo  
: (''真偽値'') 結果を表示するか、変数等へ値を返すか。初期値は ''true''(整形されたカテゴリーリストを表示)。[[Version 2.3|バージョン 2.3]] 以降のみ。有効値:
+
: (''真偽値'') 結果を表示するか、変数等へ値を返すか。初期値は <code>true</code>(整形されたカテゴリーリストを表示)。[[Version 2.3|バージョン 2.3]] 以降のみ。有効な値は:
 
:* <code>1 (true)</code> - 表示(初期値)
 
:* <code>1 (true)</code> - 表示(初期値)
 
:* <code>0 (false)</code> - 値を返す
 
:* <code>0 (false)</code> - 値を返す
 +
 
; depth  
 
; depth  
: (''整数'') カテゴリー階層のどのレベルまでをカテゴリーリストに出力するかを指定。初期値は '''0'''(全親子カテゴリーを出力)。[[Version 2.5|バージョン 2.5]] 以降のみ。
+
: (''整数'') カテゴリー階層のどのレベルまでをカテゴリーリストに出力するかを指定。初期値は <code>0<code>(全ての親子カテゴリーを出力)。[[Version 2.5|バージョン 2.5]] 以降のみ。
 
:* <code>0</code>  - 全ての親子カテゴリーを出力 (初期値)
 
:* <code>0</code>  - 全ての親子カテゴリーを出力 (初期値)
 
:* <code>-1</code> - 全てのカテゴリーをフラット(インデントなし)形式で出力('''hierarchical''' パラメータより優先)
 
:* <code>-1</code> - 全てのカテゴリーをフラット(インデントなし)形式で出力('''hierarchical''' パラメータより優先)
 
:* <code>1</code>  - 最上位カテゴリーのみ出力
 
:* <code>1</code>  - 最上位カテゴリーのみ出力
 
:* <code>n</code>  - n(数値)階層目までを出力。'2' と指定すれば、最上位とすぐ下の子カテゴリーまでを出力。
 
:* <code>n</code>  - n(数値)階層目までを出力。'2' と指定すれば、最上位とすぐ下の子カテゴリーまでを出力。
; current_category : (''整数'') カテゴリーアーカイブページ以外で "current-cat" を表示させる。通常とは別の使い方をしたり、他のカテゴリーをハイライトしたい場合、このパラメータで関数による「現在」のカテゴリーの判断を上書きできる。[[Version 2.6|2.6]] 以降のみ。
+
:'''参考''' - #L289 より:'''hierarchical''' は(デフォルトで無効化されている)、<code>true</code> (有効)でなければ '''depth''' パラメータより優先する。'''hierarchical''' が <code>false</code> (無効)なら、全てのカテゴリーを表示する。有効な場合は '''depth''' パラメータの値を使用する。
; '''pad_counts''' : (''真偽値'') 子カテゴリーの項目を含めてリンクまたは投稿数を計算する。show_counts または hierarchical true の場合、自動的に true に設定される。[[Version 2.9|2.9]] 以降のみ。有効値:
+
 
 +
; current_category
 +
: (''整数'') カテゴリーアーカイブページ以外で "current-cat" を表示させる。普通はカテゴリーアーカイブページのみで current-cat がセットされるが、それとは別の使い方をしたり、他のカテゴリーをハイライトしたい場合、このパラメータ(カテゴリー ID を指定)で関数による「現在」のカテゴリーの判断を上書きできる。[[Version 2.6|バージョン 2.6]] 以降のみ。
 +
 
 +
; '''pad_counts'''  
 +
: (''真偽値'') 子カテゴリーからの値を含めてリンク数または投稿数を計算する。'''show_counts''' と '''hierarchical''' が両方とも <code>true</code> の場合、自動的に <code>true</code> に設定される。[[Version 2.9|バージョン 2.9]] 以降のみ。有効な値は:
 
:* <tt>1 (true)</tt>  
 
:* <tt>1 (true)</tt>  
 
:* <tt>0 (false)</tt> - 初期値
 
:* <tt>0 (false)</tt> - 初期値
; '''taxonomy''' : (''文字列'') 返す分類名。[[Version 3.0|3.0]] 以降のみ。有効値:
+
 
:* <tt>category</tt> - デフォルト
+
; '''taxonomy'''  
:* <tt>taxonomy</tt> - または登録されたタクソノミーのいずれか
+
: (''文字列'') カテゴリーを取得するタクソノミーの名前。[[Version 3.0|バージョン 3.0]] 以降のみ。有効な値は:
; '''walker''' : (''オブジェクト'') リストをレンダリングする Walker クラス。有効値:
+
:* <tt>category</tt> - デフォルト('''参考''':投稿のカテゴリーは category タクソノミーのターム。)
:* <tt>object</tt> - Walker_Category または Walker を拡張する Class インスタンス
+
:* <tt>タクソノミー名</tt> - または登録済みタクソノミー(カスタム分類)の名前
 +
 
 +
; '''walker'''  
 +
: (''オブジェクト'') リストをレンダリングする Walker クラス。有効な値は:
 +
:* <tt>オブジェクト</tt> - Walker_Category または [[クラスリファレンス/Walker|Walker]] を拡張するクラスのインスタンス
 +
 
 +
<div id="Examples">
 +
== 用例 ==
 +
</div>
  
 
<div id="Include_or_Exclude_Categories">
 
<div id="Include_or_Exclude_Categories">
151行目: 189行目:
 
</div>
 
</div>
  
カテゴリーをアルファベット順にソート、カテゴリーID 16, 3, 9, 5 のみを表示したいときは、次のようにコードを書きます。
+
カテゴリーをアルファベット順にソートし、カテゴリー ID の 16, 3, 9, 5 のみを表示したいときは、次のようにコードを書きます。
 +
 
 
<pre>
 
<pre>
 +
<ul>
 
<?php wp_list_categories('orderby=name&include=3,5,9,16'); ?>
 
<?php wp_list_categories('orderby=name&include=3,5,9,16'); ?>
 +
</ul>
 
</pre>
 
</pre>
  
次の例は、カテゴリー名順にソート、各カテゴリーの投稿数を表示、リストからカテゴリーID 10 を除外:
+
次の例は、カテゴリー名順にソート、各カテゴリーの投稿数を表示、リストから ID が 10 のカテゴリーを除外:
 
<pre>
 
<pre>
 +
<ul>
 
<?php wp_list_categories('orderby=name&show_count=1&exclude=10'); ?>
 
<?php wp_list_categories('orderby=name&show_count=1&exclude=10'); ?>
 +
</ul>
 
</pre>
 
</pre>
  
165行目: 208行目:
 
</div>
 
</div>
  
[[#titleli|'''title_li''']] パラメータは、生成されるカテゴリーリストの見出しを設定したり隠したりします。初期値は <tt>'__('Categories')'</tt>で、見出しとして "Categories"という語句(日本語化で「カテゴリー」)を表示します。
+
[[#titleli|'''title_li''']] パラメータは、生成されるカテゴリーリストの見出しを設定したり隠したりします。
 +
初期値は <tt>'__('Categories')'</tt>で、見出しとして "Categories" という語句(日本語版では「カテゴリー」)を表示します。
  
訳注: <code>__('Categories')</code> や <code>__('Poetry')</code> は、[[Template:ローカライズ関連リンク|ローカライズ対応]]の書き方です。括弧内の文字列とその訳語が日本語化ファイルで定義されていれば、訳語に置換されて表示されます。
+
'''訳注''': <code>__('Categories')</code> や <code>__('Poetry')</code> は、[[Template:ローカライズ関連リンク|ローカライズ対応]]の書き方です。
 +
括弧内の文字列とその訳語が日本語化ファイルで定義されていれば、訳語に置換されて表示されます。
  
 
==== 見出しの非表示 ====
 
==== 見出しの非表示 ====
このパラメータに null や空の値をセットすると、見出しを表示しません。次のコードは、カテゴリーID 4、7 以外を表示し、見出しを非表示とする例です。[[#カテゴリーリストのマークアップと装飾|上述]]したように、<code>'title_li='</code> 指定時は外側の <code>ul</code> も出力されないため、自分で <code>ul</code> または <code>ol</code> を補います。
+
このパラメータに null や空の値をセットすると、見出しを表示しません。
 +
次のコードは、ID が 4, 7 以外のカテゴリーを表示し、見出しを非表示とする例です。
  
 
<pre>
 
<pre>
179行目: 225行目:
  
 
==== 見出し文字列の変更 ====
 
==== 見出し文字列の変更 ====
 
+
次の例は、ID が 9, 5, 23 のカテゴリーのみを表示、見出しを <code><nowiki><h2></nowiki></code> タグ付きの "Poetry" という文字列に変更:
次の例は、カテゴリーID 9、5、23 のみを表示、見出しを <code><nowiki><h2></nowiki></code> タグ付きの "Poetry" 語句に変更:
+
  
 
<pre>
 
<pre>
 +
<ul>
 
<?php wp_list_categories('include=5,9,23&title_li=<h2>' . __('Poetry') . '</h2>' ); ?>
 
<?php wp_list_categories('include=5,9,23&title_li=<h2>' . __('Poetry') . '</h2>' ); ?>
 +
</ul>
 
</pre>
 
</pre>
  
190行目: 237行目:
 
</div>
 
</div>
  
次のコードは、ID でソート、カテゴリーID 8 の子カテゴリーのみのカテゴリーリンクを生成する例です。各カテゴリーの投稿数は表示、リンクの <code>title</code> 属性のカテゴリー概要は非表示です。'''注:''' 親カテゴリーに投稿がないときは、親カテゴリーは表示されません。<!-- 投稿があれば親(8)も表示されるのだろうか? -->
+
次のコードは、ID でソート、ID が 8 であるカテゴリーの子孫カテゴリーのみのカテゴリーリンクを生成する例です。
 +
各カテゴリーの投稿数を表示し、リンクの <code>title</code> 属性のカテゴリー概要は非表示です。
 +
'''参考:''' ある親カテゴリーに投稿がないときは、親カテゴリーは表示されません。ただし child_of で指定したカテゴリー自身は投稿があっても表示されません。
  
 
<pre>
 
<pre>
<?php wp_list_categories('orderby=id&show_count=1
+
<ul>
&use_desc_for_title=0&child_of=8'); ?>
+
<?php wp_list_categories('orderby=id&show_count=1&use_desc_for_title=0&child_of=8'); ?>
 +
</ul>
 
</pre>
 
</pre>
  
200行目: 250行目:
 
=== カテゴリー数表示からカッコ記号を削除 ===
 
=== カテゴリー数表示からカッコ記号を削除 ===
 
</div>
 
</div>
When <tt>show_count=1</tt>, each category count is surrounded by parentheses.  In order to remove the parentheses without modifying core WordPress files, use the following code.
+
<tt>show_count=1</tt> を指定すると、カッコで囲んでカテゴリー数を表示します。
 +
コアの WordPress ファイルを変更せずにカッコ記号を削除するには、次のコードを使います。
  
 
<pre>
 
<pre>
&lt;?php
+
<?php
$variable = wp_list_categories('echo=0&show_count=1&title_li=&lt;h2&gt;Categories&lt;/h2&gt;');
+
$variable = wp_list_categories('echo=0&show_count=1&title_li=<h2>Categories</h2>');
 
$variable = str_replace(array('(',')'), '', $variable);
 
$variable = str_replace(array('(',')'), '', $variable);
 
echo $variable;
 
echo $variable;
?&gt;
+
?>
 
</pre>
 
</pre>
  
214行目: 265行目:
 
</div>
 
</div>
  
カテゴリー名でソート、各カテゴリーの投稿数を表示、各カテゴリーの RSS フィードへのリンクを表示する例:
+
次の例は、カテゴリー名でソート、各カテゴリーの投稿数を表示、各カテゴリーの RSS フィードへのリンクを表示します。
  
 
<pre>
 
<pre>
 +
<ul>
 
<?php wp_list_categories('orderby=name&show_count=1&feed=RSS'); ?>
 
<?php wp_list_categories('orderby=name&show_count=1&feed=RSS'); ?>
 +
</ul>
 
</pre>
 
</pre>
  
223行目: 276行目:
  
 
<pre>
 
<pre>
 +
<ul>
 
<?php wp_list_categories('orderby=name&show_count=1&feed_image=/images/rss.gif'); ?>
 
<?php wp_list_categories('orderby=name&show_count=1&feed_image=/images/rss.gif'); ?>
 +
</ul>
 
</pre>
 
</pre>
  
229行目: 284行目:
 
=== カスタム分類内の項目を表示 ===
 
=== カスタム分類内の項目を表示 ===
 
</div>
 
</div>
With [[Version 3.0]] the ''taxonomy'' parameter was added to enable [[Template Tags/wp list categories|wp list categories]] to list custom taxonomies.  This example list the terms in the taxonomy ''genre'':
+
 
 +
[[Version 3.0|バージョン 3.0]] で '''taxonomy''' パラメータが追加され、[[カスタム分類]](カスタムタクソノミー)をリストできるようになりました。
 +
次の例は ''genre'' というタクソノミーに含まれるターム(分類の項目)をリストします:
 +
 
 
<pre>
 
<pre>
 
<?php  
 
<?php  
//list terms in a given taxonomy using wp_list_categories (also useful as a widget if using a PHP Code plugin)
+
// 指定されたタクソノミーに含まれるタームを wp_list_categories を使ってリストする。
$orderby = 'name';  
+
// (PHP コードを有効にするプラグインを併用すると、ウィジェットの中でも使える。)
$show_count = 0; // 1 for yes, 0 for no
+
 
$pad_counts = 0; // 1 for yes, 0 for no
+
$taxonomy    = 'genre';
$hierarchical = 1; // 1 for yes, 0 for no
+
$orderby     = 'name';  
$taxonomy = 'genre';
+
$show_count   = 0;     // 表示するなら 1、しないなら 0
$title = '';
+
$pad_counts   = 0;     // 子孫のカウントも合計するなら 1、しないなら 0
 +
$hierarchical = 1;     // 階層表示するなら 1、しないなら 0
 +
$title       = '';
  
 
$args = array(
 
$args = array(
   'orderby' => $orderby,
+
  'taxonomy'    => $taxonomy,
   'show_count' => $show_count,
+
   'orderby'     => $orderby,
   'pad_counts' => $pad_counts,
+
   'show_count'   => $show_count,
 +
   'pad_counts'   => $pad_counts,
 
   'hierarchical' => $hierarchical,
 
   'hierarchical' => $hierarchical,
  'taxonomy' => $taxonomy,
+
   'title_li'     => $title
   'title_li' => $title
+
 
);
 
);
 
?>
 
?>
 +
 
<ul>
 
<ul>
<?php  
+
<?php wp_list_categories( $args ); ?>
wp_list_categories($args);
+
?>
+
 
</ul>
 
</ul>
 +
</pre>
 +
 +
<div id="Display_Categories_Assigned_to_a_Post">
 +
=== 投稿に付けられたカテゴリーを表示 ===
 +
</div>
 +
 +
ある投稿に付けられたカテゴリー(または他のタクソノミーのターム)を、カテゴリーの親子関係によってソートして表示します。
 +
カテゴリー名でソートする [[テンプレートタグ/get_the_category_list|get_the_category_list()]] 関数と似ています。
 +
この例は[[ループ]]の中で使用しなければなりません。
 +
 +
<pre>
 +
<?php
 +
$taxonomy = 'category';
 +
 +
// 投稿に付けられたターム(カテゴリー)の ID を取得する。
 +
$post_terms = wp_get_object_terms( $post->ID, $taxonomy, array( 'fields' => 'ids' ) );
 +
// リンクの区切り文字
 +
$separator = ', ';
 +
 +
if ( !empty( $post_terms ) && !is_wp_error( $post_terms ) ) {
 +
 +
$term_ids = implode( ',' , $post_terms );
 +
$terms = wp_list_categories( 'title_li=&style=none&echo=0&taxonomy=' . $taxonomy . '&include=' . $term_ids );
 +
$terms = rtrim( trim( str_replace( '<br />',  $separator, $terms ) ), $separator );
 +
 +
// 投稿のカテゴリーを表示
 +
echo  $terms;
 +
}
 +
?>
 
</pre>
 
</pre>
  
260行目: 348行目:
 
</div>
 
</div>
  
デフォルトでは、<code>wp_list_categories()</code> は、"Categories" という見出し付きで、入れ子になった番号なし箇条書きリスト(<code>ul</code>)を生成します。
+
デフォルトでは、<code>wp_list_categories()</code> は入れ子になった番号なし箇条書きリスト(<code>ul</code>)を生成します。
 +
さらに、そのリストを囲む形で、"Categories" という見出しを付けた単一のリスト項目(<code>li</code>)も一緒に生成します。
  
 
例えば <code><nowiki><?php wp_list_categories(); ?></nowiki></code> とだけ書くと、生成される XHTML コードは次のようになります。
 
例えば <code><nowiki><?php wp_list_categories(); ?></nowiki></code> とだけ書くと、生成される XHTML コードは次のようになります。
276行目: 365行目:
 
</li>
 
</li>
 
</pre>
 
</pre>
(注: <code>cat-item-''ID''</code> はカテゴリーID の番号です。)
+
(注: <code>cat-item-''ID''</code> はカテゴリー ID の番号です。)
  
カテゴリーリストの外側がさらに <code>li</code> で括られるのは、デフォルトテーマやウィジェットでは、[[Customizing Your Sidebar|サイドバー全体が <code>ul</code> の入れ子構造となっている]]/[[:en:Customizing Your Sidebar|en]] ためです。カテゴリーリストや月別アーカイブのようなサイドバーの各メニューは、その中の <code>li</code> 要素です。
+
カテゴリーリストの外側がさらに <code>li</code> で括られるのは、デフォルトテーマやウィジェットでは、[[Customizing Your Sidebar|サイドバー全体が <code>ul</code> の入れ子構造となっている]]/[[:en:Customizing Your Sidebar|en]] ためです。
 +
カテゴリーリストや月別アーカイブのようなサイドバーの各メニューは、その中の <code>li</code> 要素です。
  
最も外側のリスト項目を外すには、[[#titleli|<code>title_li</code> パラメータ]] を空指定します。この場合、上記コード例の先頭と末尾の各2行(<code><nowiki><li><ul></nowiki></code>, <code><nowiki></ul></li></nowiki></code>)が除かれ、中の <code>li</code> 要素のみが出力されるため、[[#Display_or_Hide_the_List_Heading|下記の用例]]のように、自分で箇条書き要素(<code>ul</code> または <code>ol</code>)で括る必要があります。箇条書きにしたくないときは、<code>style</code>パラメータに <var>none</var> を設定します。
+
一番外側のリスト項目を外すには、[[#titleli|<code>title_li</code> パラメータ]]に空を指定します。
 +
すると、上記コード例の先頭と末尾の各 2 行(<code><nowiki><li><ul></nowiki></code>, <code><nowiki></ul></li></nowiki></code>)が除かれ、中の <code>li</code> 要素のみが出力されます。
 +
そのため、[[#Display_or_Hide_the_List_Heading|リストの見出しの表示/非表示]]の用例のように、自分で箇条書き要素(<code>ul</code> または <code>ol</code>)で括る必要があります。
 +
箇条書きにしたくないときは、<code>style</code> パラメータに <var>none</var> を設定します。
  
カテゴリーアーカイブページでこのカテゴリーリストが生成されたときは、そのページのカテゴリー項目にのみ '''<code>current-cat</code>''' という HTML クラスが付きます。(注: <code>cat-item-''ID''</code> はカテゴリーID の番号です。)
+
カテゴリーアーカイブページでこのカテゴリーリストが生成されたときは、そのページのカテゴリー項目にのみ <code>current-cat</code> という HTML クラスが付きます。
 +
(注: <code>cat-item-''ID''</code> は、カテゴリー ID の番号です。)
 
<pre>...
 
<pre>...
 
<li class="cat-item cat-item-ID">(その他のカテゴリー)</li>
 
<li class="cat-item cat-item-ID">(その他のカテゴリー)</li>
291行目: 385行目:
 
[[用語集#CSS|CSS]] を使って、現在のカテゴリーをハイライト表示させるなどの装飾ができます。
 
[[用語集#CSS|CSS]] を使って、現在のカテゴリーをハイライト表示させるなどの装飾ができます。
  
   .current-cat { ... }
+
   li.categories { ... }  /* 一番外側のリスト項目 */
 +
  li.cat-item { ... }
 +
  li.cat-item-7 { ... }  /* ID が 7 のカテゴリー(ID を指定) */
 +
  li.current-cat { ... }
 +
  li.current-cat-parent { ... }
 +
  ul.children { ... }
  
 
== 変更履歴 ==
 
== 変更履歴 ==
* [[Version 3.0|3.0]] : パラメータに <code>taxonomy</code> が追加されました。
+
* [[Version 2.1|2.1.0]] : 新規テンプレートタグ。
* [[Version 2.9|2.9]] : パラメータに <code>pad_counts</code> が追加されました。
+
* [[Version 2.3|2.3.0]] : パラメータに <code>echo</code> を追加。
* [[Version 2.7.1|2.7.1]] : パラメータに <code>exclude_tree</code> が追加されました。
+
* [[Version 2.5|2.5.0]] : パラメータに <code>depth</code> を追加。
* [[Version 2.6|2.6]] : パラメータに <code>current_category</code> が追加されました。
+
* [[Version 2.6|2.6.0]] : パラメータに <code>current_category</code> を追加。
* [[Version 2.5|2.5]] : パラメータに <code>depth</code> が追加されました。
+
* [[Version 2.7.1|2.7.1]] : パラメータに <code>exclude_tree</code> を追加。
* [[Version 2.3|2.3]] : パラメータに <code>echo</code> が追加されました。
+
* [[Version 2.9|2.9.0]] : パラメータに <code>pad_counts</code> を追加。
* 2.1 : 新規テンプレートタグ
+
* [[Version 3.0|3.0.0]] : パラメータに <code>taxonomy</code> を追加。
 +
* [[Version 3.4|3.4.0]] : <code>show_last_update</code> パラメータを削除。
  
 
<div id="Source_File">
 
<div id="Source_File">
 
== ソースファイル ==
 
== ソースファイル ==
 
</div>
 
</div>
<tt>wp_list_categories()</tt> は {{BrowseSource|wp-includes/category-template.php}} にあります。
+
 
 +
<tt>wp_list_categories()</tt> は {{Trac|wp-includes/category-template.php}} にあります。
  
 
<div id="Related">
 
<div id="Related">
== 関連 ==
+
== 関連項目 ==
 
</div>
 
</div>
{{Tag Category Tags}}
+
 
 +
{{Tag Category Tags}}, [[関数リファレンス/get_categories|<code>get_categories()</code>]]
 +
 
 +
{{Lists Tags}}
  
 
{{Query String Tag Footer}}
 
{{Query String Tag Footer}}
 +
<!-- {{Tag Footer}} -->
  
{{原文|Template Tags/wp_list_categories|54935}}
+
{{原文|Template Tags/wp list categories|144591}} <!-- 17:24, 2 July 2014 Donwilson 版 -->
  
 
{{DEFAULTSORT:Wp_list_categories}}
 
{{DEFAULTSORT:Wp_list_categories}}
324行目: 429行目:
 
[[Category:wp2.9]]
 
[[Category:wp2.9]]
 
[[Category:wp3.0]]
 
[[Category:wp3.0]]
 +
[[Category:wp3.4]]
  
 
[[en:Template Tags/wp_list_categories]]
 
[[en:Template Tags/wp_list_categories]]

2014年8月9日 (土) 18:11時点における版

リンク付きカテゴリーリストを表示します。 カテゴリーリンクをクリックすると、テンプレート階層ルールに基づく適切なカテゴリーテンプレートを用いたカテゴリーページに、そのカテゴリーに属する全ての投稿が表示されます。

参考: wp_list_categories() は、WordPress 2.1 で非推奨となった list_cats() および wp_list_cats() の後継で、この二つとほぼ同じように動作します。

フォーマットしていない結果が必要な場合は、get_categories() をお試しください。

使い方

<?php wp_list_categories( $args ); ?>

デフォルトの使い方

<?php $args = array(
	'show_option_all'    => '',
	'orderby'            => 'name',
	'order'              => 'ASC',
	'style'              => 'list',
	'show_count'         => 0,
	'hide_empty'         => 1,
	'use_desc_for_title' => 1,
	'child_of'           => 0,
	'feed'               => '',
	'feed_type'          => '',
	'feed_image'         => '',
	'exclude'            => '',
	'exclude_tree'       => '',
	'include'            => '',
	'hierarchical'       => 1,
	'title_li'           => __( 'Categories' ),
	'show_option_none'   => __( 'No categories' ),
	'number'             => null,
	'echo'               => 1,
	'depth'              => 0,
	'current_category'   => 0,
	'pad_counts'         => 0,
	'taxonomy'           => 'category',
	'walker'             => null
); ?>

デフォルトでは次のように表示します:

  • 全カテゴリーページへのリンクなし
  • リストはカテゴリー名の昇順
  • 番号なし箇条書きリスト形式で表示
  • 投稿数は非表示
  • 投稿のあるカテゴリーのみ表示
  • カテゴリーの「説明」を title 属性にセット
  • 子カテゴリーの制限なし
  • フィードへのリンクなし/リンク画像なし
  • 表示カテゴリーの指定/除外なし
  • 現在のカテゴリーを CSS クラスサフィックス 'current-cat' とともに表示
  • カテゴリーレベルをインデント表示(ネスト表示、ツリー表示)
  • リストの前に、見出しとして「Category」(日本語化ファイルで定義されていればその文字列)を表示
  • SQL LIMIT なし
  • リストを表示(バージョン 2.3 以降では、表示/値の取得を選べる)
  • 表示する階層の深さ制限なし
  • 全カテゴリー
  • Walker_Category クラスでリストをレンダリング

パラメータ

show_option_all
文字列) ブランク以外の文字列を設定すると、全カテゴリーの記事を表示するページ(ブログのトップページ)へのリンクを、カテゴリーリストの先頭に表示します。リンクテキストはこのパラメータで指定した文字列です。デフォルトでは表示しません。
orderby
文字列) カテゴリーのソート項目。初期値はカテゴリー名でソート。有効な値は:
  • ID - カテゴリーID
  • name - カテゴリー名のアルファベット順(初期値)
  • slug
  • count - カテゴリーの投稿数
  • term_group
order
文字列) カテゴリーのソート順。初期値は昇順。有効な値は:
  • ASC - 昇順(初期値)
  • DESC - 降順


style
文字列) カテゴリーリストの表示形式。マークアップの節 を参照。有効な値は:
  • list - 箇条書き(<ul>)(初期値)
  • none - 表示形式なし(各カテゴリーは <br>(改行)で区切られる)
show_count
真偽値) 各カテゴリーに投稿数を表示するか。初期値は false(非表示)。有効な値は:
  • 1 (true) - 表示
  • 0 (false) - 非表示(初期値)
hide_empty
真偽値) 投稿のないカテゴリーを非表示にするか。有効値:
  • 1 (true) - 空カテゴリーを隠す(初期値)
  • 0 (false) - 全て表示
use_desc_for_title
真偽値カテゴリーの説明をリンク(アンカータグ)の title 属性に挿入(<a title="カテゴリーの説明" href="...> のように)するか。初期値は true(カテゴリーの説明を挿入)。有効な値は:
  • 1 (true) - カテゴリーの説明を挿入(初期値)
  • 0 (false) - 挿入しない
child_of
整数) このパラメータで指定したカテゴリー ID の子カテゴリーのみ表示。初期値なし。このパラメータを使うと、hide_empty パラメータに false がセットされる。
feed
文字列)各カテゴリーの rss-2 フィードへのリンクを表示、そのリンク文字列を設定する。初期値は フィードへのリンク・リンク文字列なし
feed_type
文字列
feed_image
文字列) 各カテゴリーの rss-2 フィードへのリンクを画像(通常は RSS フィードアイコン)で表示したいときに、その画像の URI を設定。このパラメータは feed パラメータより優先(リンク文字列の代わりに画像)。初期値なし。
exclude
文字列) 指定したカテゴリー(複数可)をリストから除外。除外するカテゴリーの ID をカンマ区切りで指定。用例を参照。child_of パラメータは自動的に無効となる。
exclude_tree
文字列) 結果から除外するカテゴリーツリー。除外するカテゴリー(ツリーの最上位)の ID をカンマ区切りで指定。include パラメータは空にすること。hierarchical パラメータが true の場合、exclude_tree の代わりに exclude が使われる。バージョン 2.7.1 以降のみ。
include
文字列) 指定したカテゴリー ID のみリストに表示。カンマ区切りで指定。用例を参照。
hierarchical
真偽値) サブカテゴリーを箇条書き項目の内側(親カテゴリーより下位レベル)に表示するか、親と同レベルで表示するか。(つまり、箇条書きを入れ子・ツリー表示にするか否か。)初期値は true(サブカテゴリーを親より下位レベルに表示)。有効な値は:
  • 1 (true) - 入れ子表示(初期値)
  • 0 (false) - 親子同レベル
title_li
文字列) 箇条書きの外側に表示するタイトルと表示形式。デフォルトは "Categories" (日本語化ファイルで定義されていればその文字列)。このパラメータを中味を空で指定すると、箇条書きの外側には何も表示しません。用例を参照。
show_option_none
(文字列) 表示するカテゴリーが一つも無いときに代わりに表示する文字列。デフォルトは "No categories" (日本語化ファイルで定義されていればその文字列)。
number
整数) 表示するカテゴリーの個数を設定。SQL の LIMIT 値となります。初期値は無制限。
echo
真偽値) 結果を表示するか、変数等へ値を返すか。初期値は true(整形されたカテゴリーリストを表示)。バージョン 2.3 以降のみ。有効な値は:
  • 1 (true) - 表示(初期値)
  • 0 (false) - 値を返す
depth
整数) カテゴリー階層のどのレベルまでをカテゴリーリストに出力するかを指定。初期値は 0<code>(全ての親子カテゴリーを出力)。バージョン 2.5 以降のみ。
  • <code>0 - 全ての親子カテゴリーを出力 (初期値)
  • -1 - 全てのカテゴリーをフラット(インデントなし)形式で出力(hierarchical パラメータより優先)
  • 1 - 最上位カテゴリーのみ出力
  • n - n(数値)階層目までを出力。'2' と指定すれば、最上位とすぐ下の子カテゴリーまでを出力。
参考 - #L289 より:hierarchical は(デフォルトで無効化されている)、true (有効)でなければ depth パラメータより優先する。hierarchicalfalse (無効)なら、全てのカテゴリーを表示する。有効な場合は depth パラメータの値を使用する。
current_category
(整数) カテゴリーアーカイブページ以外で "current-cat" を表示させる。普通はカテゴリーアーカイブページのみで current-cat がセットされるが、それとは別の使い方をしたり、他のカテゴリーをハイライトしたい場合、このパラメータ(カテゴリー ID を指定)で関数による「現在」のカテゴリーの判断を上書きできる。バージョン 2.6 以降のみ。
pad_counts
(真偽値) 子カテゴリーからの値を含めてリンク数または投稿数を計算する。show_countshierarchical が両方とも true の場合、自動的に true に設定される。バージョン 2.9 以降のみ。有効な値は:
  • 1 (true)
  • 0 (false) - 初期値
taxonomy
(文字列) カテゴリーを取得するタクソノミーの名前。バージョン 3.0 以降のみ。有効な値は:
  • category - デフォルト(参考:投稿のカテゴリーは category タクソノミーのターム。)
  • タクソノミー名 - または登録済みタクソノミー(カスタム分類)の名前
walker
(オブジェクト) リストをレンダリングする Walker クラス。有効な値は:
  • オブジェクト - Walker_Category または Walker を拡張するクラスのインスタンス

用例

カテゴリーの指定・除外

カテゴリーをアルファベット順にソートし、カテゴリー ID の 16, 3, 9, 5 のみを表示したいときは、次のようにコードを書きます。

<ul>
<?php wp_list_categories('orderby=name&include=3,5,9,16'); ?>
</ul>

次の例は、カテゴリー名順にソート、各カテゴリーの投稿数を表示、リストから ID が 10 のカテゴリーを除外:

<ul>
<?php wp_list_categories('orderby=name&show_count=1&exclude=10'); ?>
</ul>

リストの見出しの表示/非表示

title_li パラメータは、生成されるカテゴリーリストの見出しを設定したり隠したりします。 初期値は '__('Categories')'で、見出しとして "Categories" という語句(日本語版では「カテゴリー」)を表示します。

訳注__('Categories')__('Poetry') は、ローカライズ対応の書き方です。 括弧内の文字列とその訳語が日本語化ファイルで定義されていれば、訳語に置換されて表示されます。

見出しの非表示

このパラメータに null や空の値をセットすると、見出しを表示しません。 次のコードは、ID が 4, 7 以外のカテゴリーを表示し、見出しを非表示とする例です。

<ul>
<?php wp_list_categories('exclude=4,7&title_li='); ?>
</ul>

見出し文字列の変更

次の例は、ID が 9, 5, 23 のカテゴリーのみを表示、見出しを <h2> タグ付きの "Poetry" という文字列に変更:

<ul>
<?php wp_list_categories('include=5,9,23&title_li=<h2>' . __('Poetry') . '</h2>' ); ?>
</ul>

子カテゴリーのみの表示

次のコードは、ID でソート、ID が 8 であるカテゴリーの子孫カテゴリーのみのカテゴリーリンクを生成する例です。 各カテゴリーの投稿数を表示し、リンクの title 属性のカテゴリー概要は非表示です。 参考: ある親カテゴリーに投稿がないときは、親カテゴリーは表示されません。ただし child_of で指定したカテゴリー自身は投稿があっても表示されません。

<ul>
<?php wp_list_categories('orderby=id&show_count=1&use_desc_for_title=0&child_of=8'); ?>
</ul>

カテゴリー数表示からカッコ記号を削除

show_count=1 を指定すると、カッコで囲んでカテゴリー数を表示します。 コアの WordPress ファイルを変更せずにカッコ記号を削除するには、次のコードを使います。

<?php
$variable = wp_list_categories('echo=0&show_count=1&title_li=<h2>Categories</h2>');
$variable = str_replace(array('(',')'), '', $variable);
echo $variable;
?>

次の例は、カテゴリー名でソート、各カテゴリーの投稿数を表示、各カテゴリーの RSS フィードへのリンクを表示します。

<ul>
<?php wp_list_categories('orderby=name&show_count=1&feed=RSS'); ?>
</ul>

RSS リンク部分をフィードアイコンで表示するには:

<ul>
<?php wp_list_categories('orderby=name&show_count=1&feed_image=/images/rss.gif'); ?>
</ul>

カスタム分類内の項目を表示

バージョン 3.0taxonomy パラメータが追加され、カスタム分類(カスタムタクソノミー)をリストできるようになりました。 次の例は genre というタクソノミーに含まれるターム(分類の項目)をリストします:

<?php 
// 指定されたタクソノミーに含まれるタームを wp_list_categories を使ってリストする。
// (PHP コードを有効にするプラグインを併用すると、ウィジェットの中でも使える。)

$taxonomy     = 'genre';
$orderby      = 'name'; 
$show_count   = 0;      // 表示するなら 1、しないなら 0
$pad_counts   = 0;      // 子孫のカウントも合計するなら 1、しないなら 0
$hierarchical = 1;      // 階層表示するなら 1、しないなら 0
$title        = '';

$args = array(
  'taxonomy'     => $taxonomy,
  'orderby'      => $orderby,
  'show_count'   => $show_count,
  'pad_counts'   => $pad_counts,
  'hierarchical' => $hierarchical,
  'title_li'     => $title
);
?>

<ul>
<?php wp_list_categories( $args ); ?>
</ul>

投稿に付けられたカテゴリーを表示

ある投稿に付けられたカテゴリー(または他のタクソノミーのターム)を、カテゴリーの親子関係によってソートして表示します。 カテゴリー名でソートする get_the_category_list() 関数と似ています。 この例はループの中で使用しなければなりません。

<?php
$taxonomy = 'category';

// 投稿に付けられたターム(カテゴリー)の ID を取得する。
$post_terms = wp_get_object_terms( $post->ID, $taxonomy, array( 'fields' => 'ids' ) );
// リンクの区切り文字
$separator = ', ';

if ( !empty( $post_terms ) && !is_wp_error( $post_terms ) ) {

	$term_ids = implode( ',' , $post_terms );
	$terms = wp_list_categories( 'title_li=&style=none&echo=0&taxonomy=' . $taxonomy . '&include=' . $term_ids );
	$terms = rtrim( trim( str_replace( '<br />',  $separator, $terms ) ), $separator );

	// 投稿のカテゴリーを表示
	echo  $terms;
}
?>

カテゴリーリストのマークアップと装飾

デフォルトでは、wp_list_categories() は入れ子になった番号なし箇条書きリスト(ul)を生成します。 さらに、そのリストを囲む形で、"Categories" という見出しを付けた単一のリスト項目(li)も一緒に生成します。

例えば <?php wp_list_categories(); ?> とだけ書くと、生成される XHTML コードは次のようになります。

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

(注: cat-item-ID はカテゴリー ID の番号です。)

カテゴリーリストの外側がさらに li で括られるのは、デフォルトテーマやウィジェットでは、サイドバー全体が ul の入れ子構造となっている/en ためです。 カテゴリーリストや月別アーカイブのようなサイドバーの各メニューは、その中の li 要素です。

一番外側のリスト項目を外すには、title_li パラメータに空を指定します。 すると、上記コード例の先頭と末尾の各 2 行(<li><ul>, </ul></li>)が除かれ、中の li 要素のみが出力されます。 そのため、リストの見出しの表示/非表示の用例のように、自分で箇条書き要素(ul または ol)で括る必要があります。 箇条書きにしたくないときは、style パラメータに none を設定します。

カテゴリーアーカイブページでこのカテゴリーリストが生成されたときは、そのページのカテゴリー項目にのみ current-cat という HTML クラスが付きます。 (注: cat-item-ID は、カテゴリー ID の番号です。)

...
<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>
...

CSS を使って、現在のカテゴリーをハイライト表示させるなどの装飾ができます。

 li.categories { ... }  /* 一番外側のリスト項目 */
 li.cat-item { ... }
 li.cat-item-7 { ... }  /* ID が 7 のカテゴリー(ID を指定) */
 li.current-cat { ... }
 li.current-cat-parent { ... }
 ul.children { ... }

変更履歴

  • 2.1.0 : 新規テンプレートタグ。
  • 2.3.0 : パラメータに echo を追加。
  • 2.5.0 : パラメータに depth を追加。
  • 2.6.0 : パラメータに current_category を追加。
  • 2.7.1 : パラメータに exclude_tree を追加。
  • 2.9.0 : パラメータに pad_counts を追加。
  • 3.0.0 : パラメータに taxonomy を追加。
  • 3.4.0 : show_last_update パラメータを削除。

ソースファイル

wp_list_categories()wp-includes/category-template.php にあります。


カテゴリータグ: the_category(), the_category_rss(), single_cat_title(), category_description(), wp_dropdown_categories(), wp_list_categories(), get_the_category(), get_the_category_by_ID(), get_category_by_slug(), get_the_category_list(), get_category_parents(), get_category_link(), is_category(), in_category() , get_categories()


リスト・ドロップダウン関数: wp_list_authors(), wp_list_categories(), wp_list_pages(), wp_list_bookmarks(), wp_list_comments(), wp_get_archives(), wp_page_menu(), wp_dropdown_pages(), wp_dropdown_categories(), wp_dropdown_users()


テンプレートタグへのクエリ文字列型パラメータの渡し方関数リファレンステンプレートタグ目次もご覧ください。


最新英語版: WordPress Codex » Template Tags/wp list categories最新版との差分