• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

テンプレートタグ/wp list categories

提供: WordPress Codex 日本語版
< テンプレートタグ
2008年3月18日 (火) 20:11時点におけるBono (トーク | 投稿記録)による版 (show_option_all パラメータ、「マークアップと装飾」の説明を改良/title_li= 指定以外のコード例から<ul>除去。)

移動先: 案内検索

このテンプレートタグ wp_list_categories は、リンク付きカテゴリリストを表示します。カテゴリリンクをクリックすると、テンプレート階層ルールに基づく適切なカテゴリテンプレート原文)を用いたカテゴリページに、そのカテゴリに属する全ての記事が表示されます。wp_list_categories は、WordPress 2.1 で非推奨となった list_cats() および wp_list_cats() の後継で、この二つとほぼ同じように動作します。

このテンプレートタグは Wordpress 2.1 以上でのみ使えます。

使い方

<?php wp_list_categories('引数'); ?>

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

デフォルトでは、wp_list_categories() は、"Categories" という見出し付きで、入れ子になった番号なし箇条書きリスト(ul)を生成します。

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

<li class="categories">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 を使って、現在のカテゴリをハイライト表示させるなどの装飾ができます。

 .current-cat { ... }

用例

デフォルトでの使い方

$defaults = array('show_option_all' => '', 'orderby' => 'name', 'order' => 'ASC', 
'show_last_update' => 0, 'style' => 'list','show_count' => 0, 'hide_empty' => 1, 
'use_desc_for_title' => 1, 'child_of' => 0, 'feed' => '', 'feed_image' => '', 
'exclude' => '', 'hierarchical' => true, 'title_li' => __('Categories'),
'echo' => 1);

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

  • 全カテゴリページへのリンクなし
  • リストはカテゴリ名の昇順
  • (各カテゴリに属する最後に更新された記事の)最終更新日は非表示
  • 番号なし箇条書きリスト形式で表示
  • 投稿数は非表示
  • 投稿のあるカテゴリのみ表示
  • カテゴリ概要を title 属性にセット
  • 子カテゴリの制限なし
  • フィードへのリンクなし/リンク画像なし
  • 表示カテゴリの指定/除外なし(指定しないので、上記初期値に 'include' => '' が載っていない)
  • カテゴリレベルをインデント表示(ネスト表示、ツリー表示)
  • リストの前に、見出しとして「Category」(日本語化ファイルで定義されていればその文字列)を表示
  • SQL LIMIT なし('number' => 0 は上記初期値に載っていない)
  • リストを表示(バージョン 2.3 以降では、表示/値の取得を選べる)
wp_list_categories();

カテゴリの指定・除外

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

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

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

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

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

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

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

見出しの非表示

このパラメータに null や空の値をセットすると、見出しを表示しません。次のコードは、カテゴリID 4、7 以外を表示し、見出しを非表示とする例です。上述したように、'title_li=' 指定時は外側の ul も出力されないため、自分で ul または ol を補います。

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

見出し文字列の変更

次の例は、カテゴリID 9、5、23 のみを表示、見出しを <h2> タグ付きの "Poetry" 語句に変更:

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

子カテゴリのみの表示

次のコードは、ID でソート、カテゴリID 8 の子カテゴリのみのカテゴリリンクを生成する例です。各カテゴリの投稿数は表示、リンクの title 属性のカテゴリ概要は非表示です。注: 親カテゴリに投稿がないときは、親カテゴリは表示されません。

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

カテゴリ名でソート、各カテゴリの投稿数を表示、各カテゴリの RSS フィードへのリンクを表示する例:

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

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

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

パラメータ

show_option_all
文字列) ブランク以外の文字列を設定すると、全カテゴリの記事を表示するページ(ブログのトップページ)へのリンクを、カテゴリリストの先頭に表示します。リンクテキストはこのパラメータで指定した文字列です。デフォルトでは表示しません。
orderby
文字列) カテゴリのソート項目。初期値はカテゴリ名でソート。有効値:
  • ID - カテゴリID
  • name - カテゴリ名のアルファベット順(初期値)
  • count - カテゴリの投稿数
order
文字列) カテゴリのソート順。初期値は 昇順。有効値:
  • ASC - 昇順(初期値)
  • DESC - 降順
show_last_updated
(真偽値) (各カテゴリに属する)投稿の最終更新日を表示するか。初期値は非表示(FALSE)。
  • 1 (true) - 表示
  • 0 (false) - 非表示(初期値)
style
文字列) カテゴリリストの表示形式。マークアップの節 を参照。有効値:
  • list - 箇条書き(<li>)(初期値)
  • none - 表示形式なし(各カテゴリは <br>(改行)で区切られる)
show_count
真偽値) 各カテゴリに投稿数を表示するか。初期値は false(非表示)。有効値:
  • 1 (true) - 表示
  • 0 (false) - 非表示(初期値)
hide_empty
真偽値) 投稿のないカテゴリを非表示にするか。有効値:
  • 1 (true) - 空カテゴリを隠す(初期値)
  • 0 (false) - 全て表示
use_desc_for_title
真偽値カテゴリの概要をリンク(アンカータグ)の title 属性に挿入(<a title="<em>カテゴリ概要</em>" href="... のように)するか。初期値は true(カテゴリ概要を挿入)。有効値:
  • 1 (true) - カテゴリ概要を挿入(初期値)
  • 0 (false) - 挿入しない
child_of
整数) このパラメータで指定したカテゴリID の子カテゴリのみ表示。初期値なし。このパラメータを使うと、hide_empty パラメータに false がセットされる。
feed
文字列)各カテゴリの rss-2 フィードへのリンクを表示、そのリンク文字列を設定する。初期値は フィードへのリンク・リンク文字列なし
feed_image
文字列) 各カテゴリの rss-2 フィードへのリンクを画像(通常は RSSフィードアイコン)で表示したいときに、その画像の URI を設定。このパラメータは feed パラメータより優先(リンク文字列の替わりに画像)。初期値なし。
exclude
文字列) 指定したカテゴリ(複数可)をリストから除外。除外するカテゴリID をカンマ区切りで昇順に指定。用例を参照。child_of パラメータは自動的に無効となります。
include
文字列) 指定したカテゴリID のみリストに表示。カンマ区切りで昇順に指定。用例を参照。
hierarchical
真偽値) サブカテゴリを箇条書き項目の内側(親カテゴリより下位レベル)に表示するか、親と同レベルで表示するか。(つまり、箇条書きを入れ子・ツリー表示にするか否か。)初期値は true(サブカテゴリを親より下位レベルに表示)。有効値:
  • 1 (true) - 入れ子表示(初期値)
  • 0 (false) - 親子同レベル
title_li
文字列) 箇条書きの外側に表示するタイトルと表示形式。デフォルトは "_Categories"。このパラメータを中味を空で指定すると、箇条書きの外側には何も表示しません。用例を参照。
number
整数) 表示するカテゴリ数を設定。SQL の LIMIT 値となります。初期値は無制限。
echo
真偽値) 結果を表示するか、変数等へ値を返すか。このパラメータは 2.3 以上でのみ使えます。初期値は true(整形されたカテゴリリストを表示)。有効値:
  • 1 (true) - 表示(初期値)
  • 0 (false) - 値を返す

変更履歴

  • 2.3 : パラメータに echo を追加
  • 2.1 : 新規テンプレートタグ

カテゴリータグ: 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()


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


最新英語版: WordPress Codex » wp_list_categories