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

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

提供: WordPress Codex 日本語版
移動先: 案内検索
(パラメータに echo を追加 (ver.2.3))
(最新のマージ <!-- 07:59, 10 August 2015‎ Nimmolo 版 -->)
 
(4人の利用者による、間の12版が非表示)
3行目: 3行目:
 
</div>
 
</div>
  
このテンプレートタグ [[テンプレートタグ/wp_list_categories|wp_list_categories]] は、リンク付き[[用語集#Category|カテゴリ]]リストを表示します。カテゴリリンクをクリックすると、[[:ja:Template Hierarchy|テンプレート階層ルール]]に基づく適切な[[Category Templates|カテゴリ・テンプレート]]([[:en:Category Templates|原文]])を用いたカテゴリページに、そのカテゴリに属する全ての記事が表示されます。<code>wp_list_categories</code> は、WordPress 2.1 で非推奨となった <code>[[:en:Template_Tags/list_cats|list_cats()]]</code> および <code>[[:en:Template_Tags/wp_list_cats|wp_list_cats()]]</code> の後継で、この二つとほぼ同じように動作します。
+
リンク付き[[用語集#Category|カテゴリー]]リストを表示します。
 +
カテゴリーリンクをクリックすると、[[テンプレート階層|テンプレート階層ルール]]に基づく適切な[[Category Templates|カテゴリーテンプレート]]を用いたカテゴリーページに、そのカテゴリーに属する全ての投稿が表示されます。
  
このテンプレートタグは Wordpress '''2.1 以上'''でのみ使えます。
+
'''参考''': '''wp_list_categories()''' は、WordPress 2.1 で非推奨となった [[テンプレートタグ/list_cats|list_cats()]] および [[テンプレートタグ/wp_list_cats|wp_list_cats()]] の後継で、この二つとほぼ同じように動作します。
 +
 
 +
フォーマットしていない結果が必要な場合は、[[関数リファレンス/get_categories|get_categories()]] をお試しください。
  
 
<div id="Usage">
 
<div id="Usage">
11行目: 14行目:
 
</div>
 
</div>
  
  <?php wp_list_categories('引数'); ?>
+
  <?php wp_list_categories( $args ); ?>
  
<div id="Markup_and_Styling_of_Category_Lists">
+
<div id="Default Usage">
== カテゴリリストのマークアップと装飾 ==
+
=== デフォルトの使い方 ===
 
</div>
 
</div>
 
デフォルトでは、<code>wp_list_categories()</code> は、箇条書きリスト <code><nowiki><ul></nowiki></code> 用のリスト項目 <code><nowiki><li></nowiki></code> を生成します。
 
'''注:''' 生成されるリスト項目('''style''' パラメータに ''none'' がセットされる場合を除く)には、開始と終了の <code><nowiki><ul></nowiki></code> タグが必要です。以下の [[#用例|用例]] をご覧ください。
 
 
<code>wp_list_categories()</code> で生成される全てのリスト項目には、CSSクラスセレクタ <code>"page_item"</code> が付きます。カテゴリページ表示中に <code>wp_list_categories()</code> が呼ばれたときは、そのカテゴリのリスト項目にはさらにクラス <code>"current_page_item"</code> が付きます:
 
  
 
<pre>
 
<pre>
<ul>
+
<?php
   <li class="page_item current_page_item">
+
    $args = array(
    [現在のページのカテゴリ]
+
'show_option_all'   => '',
  </li>
+
'orderby'            => 'name',
  <li class="page_item">
+
'order'              => 'ASC',
    [その他のカテゴリ]
+
'style'              => 'list',
  </li>
+
'show_count'        => 0,
</ul>
+
'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'  => __( '' ),
 +
'number'            => null,
 +
'echo'              => 1,
 +
'depth'              => 0,
 +
'current_category'  => 0,
 +
'pad_counts'        => 0,
 +
'taxonomy'          => 'category',
 +
'walker'            => null
 +
    );
 +
    wp_list_categories( $args );
 +
?>
 
</pre>
 
</pre>
  
このクラスを [[用語集#CSS|CSS]] で装飾できます:
+
デフォルトでは次のように表示します:
 +
* 全カテゴリーページへのリンクなし
 +
* リストはカテゴリー名の昇順
 +
<!-- バージョン 3.4 で削除された。 * (各カテゴリーに属する最後に更新された記事の)最終更新日は非表示 -->
 +
* 番号なし箇条書きリスト形式で表示
 +
* 投稿数は非表示
 +
* 投稿のあるカテゴリーのみ表示
 +
* カテゴリーの「説明」を title 属性にセット
 +
* 子カテゴリーの制限なし
 +
* フィードへのリンクなし/リンク画像なし
 +
* 表示カテゴリーの指定/除外なし
 +
* 現在のカテゴリーを CSS クラスサフィックス 'current-cat' とともに表示
 +
* カテゴリーレベルをインデント表示(ネスト表示、ツリー表示)
 +
* リストの前に、見出しとして「Category」(日本語化ファイルで定義されていればその文字列)を表示
 +
* SQL LIMIT なし
 +
* リストを表示(バージョン 2.3 以降では、表示/値の取得を選べる)
 +
* 表示する階層の深さ制限なし
 +
* 全カテゴリー
 +
* Walker_Category クラスでリストをレンダリング
  
  .page_item { ... }
+
<div id="Parameters">
  .current_page_item { ... }
+
  
<div id="Examples">
+
== パラメータ ==
== 用例 ==
+
 
</div>
 
</div>
  
<div id="Default_Usage">
+
; 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') -->)へのリンクを、カテゴリーリストの先頭に表示します。リンクテキストはこのパラメータで指定した文字列です。デフォルト値は "NULL" (すべてのカテゴリーリンクは表示されません)。
</div>
+
  
<pre>
+
; orderby
$defaults = array('show_option_all' => '', 'orderby' => 'name', 'order' => 'ASC',
+
: (''文字列'') カテゴリーのソート項目。初期値はカテゴリー名でソート。有効な値は:
'show_last_update' => 0, 'style' => 'list','show_count' => 0, 'hide_empty' => 1,
+
:* <code>ID</code> - カテゴリーID
'use_desc_for_title' => 1, 'child_of' => 0, 'feed' => '', 'feed_image' => '',
+
:* <code>name</code> - カテゴリー名のアルファベット順(初期値)
'exclude' => '', 'hierarchical' => true, 'title_li' => __('Categories'),
+
:* <code>slug</code>
'echo' => 1);
+
:* <code>count</code> - カテゴリーの投稿数
</pre>
+
:* <code>term_group</code>
  
デフォルトでは次のように表示:
+
; order
* No link to all categories(訳注:意図分からず。。)
+
: (''文字列'') カテゴリーのソート順。初期値は''昇順''。有効な値は:
* リストはカテゴリ名の昇順
+
:* <code>ASC</code> - 昇順(初期値)
* (各カテゴリに属する最後に更新された記事の)最終更新日は非表示
+
:* <code>DESC</code> - 降順
* 番号なし箇条書きリスト形式で表示
+
* 投稿数は非表示
+
* 投稿のあるカテゴリのみ表示
+
* カテゴリ概要を title 属性にセット
+
* 子カテゴリの制限なし
+
* フィードへのリンクなし/リンク画像なし
+
* 表示カテゴリの指定/除外なし(指定しないので、上記初期値に <code><nowiki>'include' => ''</nowiki></code> が載っていない)
+
* カテゴリレベルをインデント表示(ネスト表示、ツリー表示)
+
* リストの前に、見出しとして「Category」(日本語化ファイルで定義されていればその文字列)を表示
+
* SQL LIMIT なし(<code>'number' => 0</code> は上記初期値に載っていない)
+
* リストを表示(バージョン 2.3 以降では、表示/値の取得を選べる)
+
  
  wp_list_categories();
+
<!-- バージョン 3.4 で削除された。
 +
; show_last_updated
 +
: (''真偽値'') (各カテゴリーに属する)投稿の最終更新日を表示するか。初期値は非表示(FALSE)。
 +
:* <code>1 (true) </code> - 表示
 +
:* <code>0 (false) </code> - 非表示(初期値)
 +
-->
 +
 
 +
; style
 +
: (''文字列'') カテゴリーリストの表示形式。[[#カテゴリーリストのマークアップと装飾|マークアップの節]] を参照。有効な値は:
 +
:* <code>list</code> - 箇条書き(<code><nowiki><ul></nowiki></code>)(初期値)
 +
:* <code>none</code> - 表示形式なし(各カテゴリーは <code><nowiki><br></nowiki></code>(改行)で区切られる)
 +
 
 +
; show_count
 +
: (''真偽値'') 各カテゴリーに投稿数を表示するか。初期値は ''false''(非表示)。有効な値は:
 +
:* <code>1 (true)</code> - 表示
 +
:* <code>0 (false)</code> - 非表示(初期値)
 +
 
 +
; hide_empty
 +
: (''真偽値'') 投稿のないカテゴリーを非表示にするか。有効値:
 +
:* <code>1 (true)</code> - 空カテゴリーを隠す(初期値)
 +
:* <code>0 (false)</code> - 全て表示
 +
 
 +
; use_desc_for_title
 +
: (''真偽値'') [[Manage_Categories_SubPanel|カテゴリーの説明]]をリンク(アンカータグ)の <code>title</code> 属性に挿入(<code><nowiki><a title="カテゴリーの説明" href="...></nowiki></code> のように)するか。初期値は ''true''(カテゴリーの説明を挿入)。有効な値は:
 +
:* <code>1 (true)</code> - カテゴリーの説明を挿入(初期値)
 +
:* <code>0 (false)</code> - 挿入しない
 +
 
 +
; child_of
 +
: (''整数'') このパラメータで指定したカテゴリー ID の子カテゴリーのみ表示。初期値なし。このパラメータを使うと、'''hide_empty''' パラメータに ''false'' がセットされる。
 +
 
 +
; feed
 +
: (''文字列'')各カテゴリーの [[用語集#RSS|rss-2]] フィードへのリンクを表示、そのリンク文字列を設定する。初期値は ''フィードへのリンク・リンク文字列なし''。
 +
 
 +
; feed_type  
 +
: (''文字列'')
 +
 
 +
; feed_image
 +
: (''文字列'') 各カテゴリーの rss-2 フィードへのリンクを画像(通常は RSS フィードアイコン)で表示したいときに、その画像の URI を設定。このパラメータは '''feed''' パラメータより優先(リンク文字列の代わりに画像)。初期値なし。
 +
 
 +
; exclude
 +
: (''文字列'') 指定したカテゴリー(複数可)をリストから除外。除外するカテゴリーの ID をコンマ区切りで指定。[[#カテゴリーの指定・除外|用例]]を参照。'''child_of''' パラメータは自動的に無効となる。
 +
 
 +
; exclude_tree 
 +
: (''文字列'') 結果から除外するカテゴリーツリー。除外するカテゴリー(ツリーの最上位)の ID をコンマ区切りで指定。'''include''' パラメータは空にすること。'''hierarchical''' パラメータが true の場合、'''exclude_tree''' の代わりに '''exclude''' が使われる。[[Version 2.7.1|バージョン 2.7.1]] 以降のみ。
 +
 
 +
; include
 +
: (''文字列'') 指定したカテゴリー ID のみリストに表示。コンマ区切りで指定。[[#カテゴリーの指定・除外|用例]]を参照。
 +
 
 +
; hierarchical
 +
: (''真偽値'') サブカテゴリーを箇条書き項目の内側(親カテゴリーより下位レベル)に表示するか、親と同レベルで表示するか。(つまり、箇条書きを入れ子・ツリー表示にするか否か。)初期値は ''true''(サブカテゴリーを親より下位レベルに表示)。有効な値は:
 +
:* <code>1 (true)</code> - 入れ子表示(初期値)
 +
:* <code>0 (false)</code> - 親子同レベル
 +
 
 +
; <span id="titleli">title_li</span>
 +
: (''文字列'') 箇条書きの外側に表示するタイトルと表示形式。デフォルトは "Categories" (日本語化ファイルで定義されていればその文字列)。このパラメータを中味を空で指定すると、箇条書きの外側には何も表示しません。[[#リストの見出しの表示/非表示|用例]]を参照。
 +
 
 +
; show_option_none
 +
: (''文字列'') 表示するカテゴリーが一つも無いときに代わりに表示する文字列。デフォルトは "No categories" (日本語化ファイルで定義されていればその文字列)。
 +
 
 +
; number
 +
: (''整数'') 表示するカテゴリーの個数を設定。SQL の LIMIT 値となります。初期値は無制限。
 +
 
 +
; echo
 +
: (''真偽値'') 結果を表示するか、変数等へ値を返すか。初期値は <code>true</code>(整形されたカテゴリーリストを表示)。[[Version 2.3|バージョン 2.3]] 以降のみ。有効な値は:
 +
:* <code>1 (true)</code> - 表示(初期値)
 +
:* <code>0 (false)</code> - 値を返す
 +
 
 +
; depth
 +
: (''整数'') カテゴリー階層のどのレベルまでをカテゴリーリストに出力するかを指定。初期値は <code>0<code>(全ての親子カテゴリーを出力)。[[Version 2.5|バージョン 2.5]] 以降のみ。
 +
:* <code>0</code>  - 全ての親子カテゴリーを出力 (初期値)
 +
:* <code>-1</code> - 全てのカテゴリーをフラット(インデントなし)形式で出力('''hierarchical''' パラメータより優先)
 +
:* <code>1</code>  - 最上位カテゴリーのみ出力
 +
:* <code>n</code>  - n(数値)階層目までを出力。'2' と指定すれば、最上位とすぐ下の子カテゴリーまでを出力。
 +
:'''参考''' - #L289 より:'''hierarchical''' は(デフォルトで無効化されている)、<code>true</code> (有効)でなければ '''depth''' パラメータより優先する。'''hierarchical''' が <code>false</code> (無効)なら、全てのカテゴリーを表示する。有効な場合は '''depth''' パラメータの値を使用する。
 +
 
 +
; 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>0 (false)</tt> - 初期値
 +
 
 +
; '''taxonomy'''
 +
: (''文字列'') カテゴリーを取得するタクソノミーの名前。[[Version 3.0|バージョン 3.0]] 以降のみ。有効な値は:
 +
:* <tt>category</tt> - デフォルト('''参考''':投稿のカテゴリーは category タクソノミーのターム。)
 +
:* <tt>タクソノミー名</tt> - または登録済みタクソノミー(カスタム分類)の名前
 +
 
 +
; '''walker'''
 +
: (''オブジェクト'') リストをレンダリングする Walker クラス。有効な値は:
 +
:* <tt>オブジェクト</tt> - [[クラスリファレンス/Walker_Category|Walker_Category]] /[http://codex.wordpress.org/Class_Reference/Walker_Category en]  または [[クラスリファレンス/Walker|Walker]] /[http://codex.wordpress.org/Class_Reference/Walker en]を拡張するクラスのインスタンス
 +
 
 +
<div id="Examples">
 +
== 用例 ==
 +
</div>
  
 
<div id="Include_or_Exclude_Categories">
 
<div id="Include_or_Exclude_Categories">
=== カテゴリの指定・除外 ===
+
=== カテゴリーの指定・除外 ===
 
</div>
 
</div>
  
カテゴリをアルファベット順にソート、カテゴリID 16, 3, 9, 5 のみを表示したいとき、次のようにコードを書きます:
+
カテゴリーをアルファベット順にソートし、カテゴリー ID の 16, 3, 9, 5 のみを表示したいときは、次のようにコードを書きます。
 +
 
 
<pre>
 
<pre>
 
<ul>
 
<ul>
<?php
+
<?php wp_list_categories('orderby=name&include=3,5,9,16'); ?>
wp_list_categories('orderby=name&include=3,5,9,16'); ?>
+
 
</ul>
 
</ul>
 
</pre>
 
</pre>
  
次の例は、カテゴリ名順にソート、各カテゴリの投稿数を表示、リストからカテゴリID 10 を除外。
+
次の例は、カテゴリー名順にソート、各カテゴリーの投稿数を表示、リストから ID が 10 のカテゴリーを除外:
 
<pre>
 
<pre>
 
<ul>
 
<ul>
<?php
+
<?php wp_list_categories('orderby=name&show_count=1&exclude=10'); ?>
wp_list_categories('orderby=name&show_count=1&exclude=10'); ?>
+
 
</ul>
 
</ul>
 
</pre>
 
</pre>
96行目: 212行目:
 
</div>
 
</div>
  
'''title_li''' パラメータは、生成されるカテゴリリストの見出しを設定したり隠したりします。初期値は <tt>'__('Categories')'</tt>で、見出しとして "Categories"という語句(日本語化で「カテゴリ」)を表示します。このパラメータに null や空の値をセットすると、見出しを表示しません。次のコードは、カテゴリID 4、7 以外を表示し、見出しを非表示とする例:
+
[[#titleli|'''title_li''']] パラメータは、生成されるカテゴリーリストの見出しを設定したり隠したりします。
 +
初期値は <tt>'__('Categories')'</tt>で、見出しとして "Categories" という語句(日本語版では「カテゴリー」)を表示します。
 +
 
 +
'''訳注''': <code>__('Categories')</code> や <code>__('Poetry')</code> は、[[Template:ローカライズ関連リンク|ローカライズ対応]]の書き方です。
 +
括弧内の文字列とその訳語が日本語化ファイルで定義されていれば、訳語に置換されて表示されます。
 +
 
 +
==== 見出しの非表示 ====
 +
このパラメータに null や空の値をセットすると、見出しを表示しません。
 +
次のコードは、ID が 4, 7 以外のカテゴリーを表示し、見出しを非表示とする例です。
  
 
<pre>
 
<pre>
 
<ul>
 
<ul>
<?php
+
<?php wp_list_categories('exclude=4,7&title_li='); ?>
wp_list_categories('exclude=4,7&title_li='); ?>
+
 
</ul>
 
</ul>
 
</pre>
 
</pre>
  
次の例は、カテゴリID 9、5、23 のみを表示、見出しを <code><nowiki><h2></nowiki></code> タグ付きの "Poetry" 語句に変更:
+
==== 見出し文字列の変更 ====
 +
次の例は、ID が 9, 5, 23 のカテゴリーのみを表示、見出しを <code><nowiki><h2></nowiki></code> タグ付きの "Poetry" という文字列に変更:
  
 
<pre>
 
<pre>
 
<ul>
 
<ul>
<?php
+
<?php wp_list_categories('include=5,9,23&title_li=<h2>' . __('Poetry') . '</h2>' ); ?>
wp_list_categories('include=5,9,23&title_li=<h2>' . __('Poetry') . '</h2>' ); ?>
+
 
</ul>
 
</ul>
 
</pre>
 
</pre>
 
訳注: <code>__('Categories')</code> や <code>__('Poetry')</code> は、ローカライズ対応の書き方です。括弧内の文字列とその訳語を日本語化ファイルで定義すれば、訳語に置換されて表示されます。
 
  
 
<div id="Only_Show_Children_of_a_Category">
 
<div id="Only_Show_Children_of_a_Category">
=== 子カテゴリのみの表示 ===
+
=== 子カテゴリーのみの表示 ===
 
</div>
 
</div>
  
次のコードは、ID でソート、カテゴリID 8 の子カテゴリのみのカテゴリリンクを生成する例です。各カテゴリの投稿数は表示、リンクの <code>title</code> 属性のカテゴリ概要は非表示です。'''注:''' 親カテゴリに投稿がないときは、親カテゴリは表示されません。<!-- 投稿があれば親(8)も表示されるのだろうか? -->
+
次のコードは、ID でソート、ID が 8 であるカテゴリーの子孫カテゴリーのみのカテゴリーリンクを生成する例です。
 +
各カテゴリーの投稿数を表示し、リンクの <code>title</code> 属性のカテゴリー概要は非表示です。
 +
'''参考:''' ある親カテゴリーに投稿がないときは、親カテゴリーは表示されません。ただし child_of で指定したカテゴリー自身は投稿があっても表示されません。
  
 
<pre>
 
<pre>
 
<ul>
 
<ul>
<?php wp_list_categories('orderby=id&show_count=1
+
<?php wp_list_categories('orderby=id&show_count=1&use_desc_for_title=0&child_of=8'); ?>
&use_desc_for_title=0&child_of=8'); ?>
+
 
</ul>
 
</ul>
 +
</pre>
 +
 +
<div id="Remove_Parentheses_from_Category_Counts">
 +
=== カテゴリー数表示からカッコ記号を削除 ===
 +
</div>
 +
<tt>show_count=1</tt> を指定すると、カッコで囲んでカテゴリー数を表示します。
 +
コアの WordPress ファイルを変更せずにカッコ記号を削除するには、次のコードを使います。
 +
 +
<pre>
 +
<?php
 +
$variable = wp_list_categories('echo=0&show_count=1&title_li=<h2>Categories</h2>');
 +
$variable = str_replace(array('(',')'), '', $variable);
 +
echo $variable;
 +
?>
 
</pre>
 
</pre>
  
 
<div id="Display_Categories_with_RSS_Feed_Links">
 
<div id="Display_Categories_with_RSS_Feed_Links">
=== フィードリンク付きカテゴリ表示 ===
+
=== フィードリンク付きカテゴリー表示 ===
 
</div>
 
</div>
  
カテゴリ名でソート、各カテゴリの投稿数を表示、各カテゴリの RSS フィードへのリンクを表示する例:
+
次の例は、カテゴリー名でソート、各カテゴリーの投稿数を表示、各カテゴリーの RSS フィードへのリンクを表示します。
  
 
<pre>
 
<pre>
 
<ul>
 
<ul>
<?php  
+
<?php wp_list_categories('orderby=name&show_count=1&feed=RSS'); ?>
wp_list_categories('orderby=name&show_count=1&feed=RSS'); ?>
+
 
</ul>
 
</ul>
 
</pre>
 
</pre>
146行目: 281行目:
 
<pre>
 
<pre>
 
<ul>
 
<ul>
 +
<?php wp_list_categories('orderby=name&show_count=1&feed_image=/images/rss.gif'); ?>
 +
</ul>
 +
</pre>
 +
 +
<div id="Display_Terms_in_a_custom_taxonomy">
 +
=== カスタム分類内の項目を表示 ===
 +
</div>
 +
 +
[[Version 3.0|バージョン 3.0]] で '''taxonomy''' パラメータが追加され、[[カスタム分類]](カスタムタクソノミー)をリストできるようになりました。
 +
次の例は ''genre'' というタクソノミーに含まれるターム(分類の項目)をリストします:
 +
 +
<pre>
 
<?php  
 
<?php  
wp_list_categories('orderby=name&show_count=1
+
// 指定されたタクソノミーに含まれるタームを wp_list_categories を使ってリストする。
&feed_image=/images/rss.gif'); ?>
+
// (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>
 
</ul>
 
</pre>
 
</pre>
  
<div id="Parameters">
+
<div id="Display_Categories_Assigned_to_a_Post">
== パラメータ ==
+
=== 投稿に付けられたカテゴリーを表示 ===
 
</div>
 
</div>
  
; 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_the_category_list|get_the_category_list()]] 関数と似ています。
; orderby
+
この例は[[ループ]]の中で使用しなければなりません。
: (''文字列'') カテゴリのソート項目。初期値はカテゴリ名でソート。有効値:
+
 
:* <code>ID</code> - カテゴリID
+
<pre>
:* <code>name</code> - カテゴリ名のアルファベット順(初期値)
+
<?php
:* <code>count</code> - カテゴリの投稿数
+
$taxonomy = 'category';
; order
+
 
: (''文字列'') カテゴリのソート順。初期値は ''昇順''。有効値:
+
// 投稿に付けられたターム(カテゴリー)の ID を取得する。
:* <code>ASC</code> - 昇順(初期値)
+
$post_terms = wp_get_object_terms( $post->ID, $taxonomy, array( 'fields' => 'ids' ) );
:* <code>DESC</code> - 降順
+
// リンクの区切り文字
; show_last_updated
+
$separator = ', ';
: (''真偽値'') (各カテゴリに属する)投稿の最終更新日を表示するか。初期値は非表示(FALSE)。
+
 
:* <code>1 (true) </code> - 表示
+
if ( !empty( $post_terms ) && !is_wp_error( $post_terms ) ) {
:* <code>0 (false) </code> - 非表示(初期値)
+
 
; style
+
$term_ids = implode( ',' , $post_terms );
: (''文字列'') カテゴリリストの表示形式。[[#カテゴリリストのマークアップと装飾|マークアップの節]] を参照。有効値:
+
$terms = wp_list_categories( 'title_li=&style=none&echo=0&taxonomy=' . $taxonomy . '&include=' . $term_ids );
:* <code>list</code> - 箇条書き(<code><nowiki><li></nowiki></code>)(初期値)
+
$terms = rtrim( trim( str_replace( '<br />',  $separator, $terms ) ), $separator );
:* <code>none</code> - 表示形式なし(各カテゴリは <code><nowiki><br></nowiki></code>(改行)で区切られる)
+
 
; show_count
+
// 投稿のカテゴリーを表示
: (''真偽値'') 各カテゴリに投稿数を表示するか。初期値は ''false''(非表示)。有効値:
+
echo  $terms;
:* <code>1 (true)</code> - 表示
+
}
:* <code>0 (false)</code> - 非表示(初期値)
+
?>
; hide_empty
+
</pre>
: (''真偽値'') 投稿のないカテゴリを非表示にするか。有効値:
+
 
:* <code>1 (true)</code> - 空カテゴリを隠す(初期値)
+
<div id="Markup_and_Styling_of_Category_Lists">
:* <code>0 (false)</code> - 全て表示
+
== カテゴリーリストのマークアップと装飾 ==
; use_desc_for_title
+
</div>
: (''真偽値'') カテゴリの[[:en:Manage Categories SubPanel|概要]]をリンク(アンカータグ)の <code>title</code> 属性に挿入(<nowiki><a title="<em>カテゴリ概要</em>" href="...</nowiki> のように)するか。初期値は ''true''(カテゴリ概要を挿入)。有効値:
+
 
:* <code>1 (true)</code> - カテゴリ概要を挿入(初期値)
+
デフォルトでは、<code>wp_list_categories()</code> は入れ子になった番号なし箇条書きリスト(<code>ul</code>)を生成します。
:* <code>0 (false)</code> - 挿入しない
+
さらに、そのリストを囲む形で、"Categories" という見出しを付けた単一のリスト項目(<code>li</code>)も一緒に生成します。
; child_of
+
 
: (''整数'') このパラメータで指定したカテゴリID の子カテゴリのみ表示。初期値なし。このパラメータを使うと、'''hide_empty''' パラメータに ''false'' がセットされる。
+
例えば <code><nowiki><?php wp_list_categories(); ?></nowiki></code> とだけ書くと、生成される XHTML コードは次のようになります。
; feed
+
<pre>
: (''文字列'')各カテゴリの [[用語集#RSS|rss-2]] フィードへのリンクを表示、そのリンク文字列を設定する。初期値は ''フィードへのリンク・リンク文字列なし''。
+
<li class="categories">カテゴリー
; feed_image
+
<ul>
: (''文字列'') 各カテゴリの rss-2 フィードへのリンクを画像(通常は RSSフィードアイコン)で表示したいときに、その画像の URI を設定。このパラメータは '''feed''' パラメータより優先(リンク文字列の替わりに画像)。初期値なし。
+
<li class="cat-item cat-item-ID"><a href="http://~/" title="カテゴリー概要">カテゴリー名</a></li>
; exclude
+
<li class="cat-item cat-item-ID"><a href="http://~/" title="カテゴリー概要">カテゴリー名</a>
: (''文字列'') 指定したカテゴリ(複数可)をリストから除外。除外するカテゴリID をカンマ区切りで昇順に指定。[[#カテゴリの指定・除外|用例]]を参照。'''child_of''' パラメータは自動的に無効となります。
+
    <ul class="children">
; include
+
    <li class="cat-item cat-item-ID"><a href="http://~/" title="カテゴリー概要">子カテゴリー名</a></li>
: (''文字列'') 指定したカテゴリID のみリストに表示。カンマ区切りで昇順に指定。[[#カテゴリの指定・除外|用例]]を参照。
+
    <li class="cat-item cat-item-ID"><a href="http://~/" title="カテゴリー概要">子カテゴリー名</a></li>
; hierarchical
+
    </ul></li>
: (''真偽値'') サブカテゴリを箇条書き項目の内側(親カテゴリより下位レベル)に表示するか、親と同レベルで表示するか。(つまり、箇条書きを入れ子・ツリー表示にするか否か。)初期値は ''true''(サブカテゴリを親より下位レベルに表示)。有効値:
+
<li class="cat-item cat-item-ID"><a href="http://~/" title="カテゴリー概要">カテゴリー名</a></li>
:* <code>1 (true)</code> - 入れ子表示(初期値)
+
</ul>
:* <code>0 (false)</code> - 親子同レベル
+
</li>
; title_li
+
</pre>
: (''文字列'') 箇条書きの外側に表示するタイトルと表示形式。デフォルトは "_Categories"。このパラメータを中味を空で指定すると、箇条書きの外側には何も表示しません。[[#リストの見出しの表示/非表示|用例]]を参照。
+
(注: <code>cat-item-''ID''</code> はカテゴリー ID の番号です。)
; number
+
 
: (''整数'') 表示するカテゴリ数を設定。SQL の LIMIT 値となります。初期値は無制限。
+
カテゴリーリストの外側がさらに <code>li</code> で括られるのは、デフォルトテーマやウィジェットでは、[[Customizing Your Sidebar|サイドバー全体が <code>ul</code> の入れ子構造となっている]]/[[:en:Customizing Your Sidebar|en]] ためです。
; echo
+
カテゴリーリストや月別アーカイブのようなサイドバーの各メニューは、その中の <code>li</code> 要素です。
: (''真偽値'') 結果を表示するか、変数等へ値を返すか。このパラメータは 2.3 以上でのみ使えます。初期値は ''true''(整形されたカテゴリリストを表示)。有効値:
+
 
:* <code>1 (true)</code> - 表示(初期値)
+
一番外側のリスト項目を外すには、[[#titleli|<code>title_li</code> パラメータ]]に空を指定します。
:* <code>0 (false)</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 の番号です。)
 +
<pre>...
 +
<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>
 +
...</pre>
 +
 
 +
[[用語集#CSS|CSS]] を使って、現在のカテゴリーをハイライト表示させるなどの装飾ができます。
 +
 
 +
  li.categories { ... }  /* 一番外側のリスト項目 */
 +
  li.cat-item { ... }
 +
  li.cat-item-7 { ... }  /* ID が 7 のカテゴリー(ID を指定) */
 +
  li.current-cat { ... }
 +
  li.current-cat-parent { ... }
 +
  ul.children { ... }
  
 
== 変更履歴 ==
 
== 変更履歴 ==
 +
* [[Version 2.1|2.1.0]] : 新規テンプレートタグ。
 +
* [[Version 2.3|2.3.0]] : パラメータに <code>echo</code> を追加。
 +
* [[Version 2.5|2.5.0]] : パラメータに <code>depth</code> を追加。
 +
* [[Version 2.6|2.6.0]] : パラメータに <code>current_category</code> を追加。
 +
* [[Version 2.7.1|2.7.1]] : パラメータに <code>exclude_tree</code> を追加。
 +
* [[Version 2.9|2.9.0]] : パラメータに <code>pad_counts</code> を追加。
 +
* [[Version 3.0|3.0.0]] : パラメータに <code>taxonomy</code> を追加。
 +
* [[Version 3.4|3.4.0]] : <code>show_last_update</code> パラメータを削除。
  
* [[Version 2.3|2.3]] : パラメータに echo を追加
+
<div id="Source_File">
* 2.1 : 新規テンプレートタグ
+
== ソースファイル ==
 +
</div>
 +
 
 +
<tt>wp_list_categories()</tt> は {{Trac|wp-includes/category-template.php}} にあります。
  
 
<div id="Related">
 
<div id="Related">
== 関連 ==
+
== 関連項目 ==
 
</div>
 
</div>
{{Tag Category Tags}}
 
  
{{Query String Tag Footer}}
+
{{Tag Category Tags}}, [[関数リファレンス/get_categories|<code>get_categories()</code>]]
  
{{Copyedit}}
+
{{Lists Tags}}
 +
 
 +
{{Query String Tag Footer}}
 +
<!-- {{Tag Footer}} -->
  
{{原文|wp_list_categories}}
+
{{原文|Template Tags/wp list categories|153210}} <!--  07:59, 10 August 2015‎ Nimmolo  版 -->
  
{{DEFAULTSORT:wp_list_categories}}
+
{{DEFAULTSORT:Wp_list_categories}}
 +
[[Category:テンプレートタグ]]
 
[[Category:wp2.1]]
 
[[Category:wp2.1]]
 
[[Category:wp2.3]]
 
[[Category:wp2.3]]
 +
[[Category:wp2.5]]
 +
[[Category:wp2.7]]
 +
[[Category:wp2.9]]
 +
[[Category:wp3.0]]
 +
[[Category:wp3.4]]
  
 
[[en:Template Tags/wp_list_categories]]
 
[[en:Template Tags/wp_list_categories]]

2015年8月11日 (火) 10:52時点における最新版

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

参考: 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'   => __( '' ),
	'number'             => null,
	'echo'               => 1,
	'depth'              => 0,
	'current_category'   => 0,
	'pad_counts'         => 0,
	'taxonomy'           => 'category',
	'walker'             => null
    );
    wp_list_categories( $args ); 
?>

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

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

パラメータ

show_option_all
文字列) ブランク以外の文字列を設定すると、全カテゴリーの記事を表示するページ(ブログのトップページ)へのリンクを、カテゴリーリストの先頭に表示します。リンクテキストはこのパラメータで指定した文字列です。デフォルト値は "NULL" (すべてのカテゴリーリンクは表示されません)。
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 クラス。有効な値は:

用例

カテゴリーの指定・除外

カテゴリーをアルファベット順にソートし、カテゴリー 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最新版との差分