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

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

提供: WordPress Codex 日本語版
移動先: 案内検索
(en:Template Tags/wp_dropdown_categories 13:07, 31 May 2007 MichaelH 版)
 
(残りを和訳。クリーンアップ。)
 
(5人の利用者による、間の12版が非表示)
1行目: 1行目:
{{Copyedit}}
+
<div id="Description">
 +
== 説明 ==
 +
</div>
  
原文・最新版: [[:en:Template Tags/wp_dropdown_categories|WordPress Codex &raquo; wp_dropdown_categories]]
+
送信ボタンのないセレクトボックス(ドロップダウンメニューなど)を使ったカテゴリーリストを表示します。
 +
<!-- Display or retrieve the HTML dropdown list of categories. -->
  
== Description ==
+
<div id="Usage">
Displays a list of categories in a select (i.e dropdown) box with no submit button.
+
== 使い方 ==
 +
</div>
  
== Usage ==
+
<?php wp_dropdown_categories( $args ); ?>
%%% <?php wp_dropdown_categories('arguments'); ?> %%%
+
 
 +
<div id="Default_Usage">
 +
=== デフォルトの使い方 ===
 +
</div>
  
== Examples ==
 
===Default Usage===
 
 
<pre>
 
<pre>
$defaults = array('show_option_all' => '', 'show_option_none' => '', 'orderby' => 'ID',  
+
<?php $args = array(
'order' => 'ASC', 'show_last_update' => 0, 'show_count' => 0, 'hide_empty' => 1,  
+
'show_option_all'   => '',
'child_of' => 0, 'exclude' => '', 'echo' => 1, 'selected' => 0, 'hierarchical' => 0,  
+
'show_option_none'   => '',
'name' => 'cat', 'class' => 'postform');
+
'option_none_value' => '-1',
 +
'orderby'           => 'ID',  
 +
'order'             => 'ASC',
 +
'show_count'         => 0,
 +
'hide_empty'         => 1,  
 +
'child_of'           => 0,
 +
'exclude'           => '',
 +
'echo'               => 1,
 +
'selected'           => 0,
 +
'hierarchical'       => 0,  
 +
'name'               => 'cat',
 +
'id'                => '',
 +
'class'             => 'postform',
 +
'depth'              => 0,
 +
'tab_index'          => 0,
 +
'taxonomy'          => 'category',
 +
'hide_if_empty'      => false,
 +
'value_field'     => 'term_id',
 +
); ?>
 
</pre>
 
</pre>
By default, the usage shows:
 
* Sorts by category id in ascending order
 
* Does not show the last date updated
 
* Does not show the count of posts within a category
 
* Does not show 'empty' categories
 
* Excludes nothing
 
* Displays (echos) the categories
 
* No category is 'selected' in the form
 
* Does not display the categories in a hierarchical structure
 
* Assigns 'cat' to the form name
 
* Assigns the form to the class 'postform'
 
  
<?php wp_dropdown_categories(); ?>
+
デフォルトでは次のように表示します:
 +
* カテゴリー ID の昇順にソート
 +
* 最終更新日は非表示
 +
* 各カテゴリーの投稿数は非表示
 +
* 空の(投稿のない)カテゴリーは非表示
 +
* 除外カテゴリーなし
 +
* カテゴリーを表示(表示するか値として返すか選べるので)
 +
* フォームの <code>'selected'</code>(初期選択値)とするカテゴリーなし
 +
* カテゴリーを階層型構造で表示しない
 +
* フォーム名を <code>'cat'</code> とする
 +
* フォーム内のカテゴリーの ID 属性を指定しないため(デフォルトの)カテゴリー名が入る
 +
* フォームのクラスを <code>'postform'</code> とする
 +
* 階層の深さ制限なし
 +
* フォームの tabindex を 0 にする
 +
* タクソノミーを 'category' にする
 +
* カテゴリー(タクソノミー 'category' のターム)が一つもなければフォーム自体を非表示
 +
* ドロップダウンオプションを選択するとターム ID を出力
  
===Dropdown with Submit Button===
 
Displays a hierarchical category dropdown list in HTML form with a submit button, in a WordPress sidebar unordered list, with a count of posts in each category.
 
  
&lt;li id="categories"&gt;
+
<div id="Parameters">
  &lt;h2&gt;<?php _e('Categories:'); ?>&lt;/h2&gt;
+
== パラメータ ==
    &lt;form action="<?php bloginfo('url'); ?>" method="get"&gt;
+
</div>
    <?php wp_dropdown_categories('show_count=1&hierarchical=1'); ?>
+
    &lt;input type="submit" name="submit" value="view" /&gt;
+
    &lt;/form&gt;
+
&lt;/li&gt;
+
  
== Parameters ==
+
{{Parameter|$args|文字列&#124;配列|デフォルトの引数を上書きします。下記の[[#Arguments|引数]]を参照してください。|オプション| }}
  
; show_option_all : (''string'') Causes the HTML for the dropdown to allow you to select All of the categories.
+
<div id="Return_Values">
; show_option_none : (''string'') Causes the HTML for the dropdown to allow you to select NONE of the categories.
+
== 戻り値 ==
; orderby : (''string'') Key to sort options by. Valid values:
+
</div>
:* <tt>'ID'</tt> (Default)
+
:* <tt>'name'</tt>
+
; order : (''string'') Sort order for options. Valid values:
+
:* <tt>'ASC'</tt> (Default)
+
:* <tt>'DESC'</tt>
+
; show_last_update : (''boolean'') Sets whether to display the date of the last post in each category. Valid values:
+
:* <tt>1</tt> (True)
+
:* <tt>0 </tt> (False - Default)
+
; show_count : (''boolean'') Sets whether to display a count of posts in each category. Valid values:
+
:* <tt>1</tt> (True)
+
:* <tt>0</tt> (False - Default)
+
; hide_empty : (''boolean'') Sets whether to hide (not display) categories with no posts. Valid values:
+
:* <tt>1</tt> (True - Default)
+
:* <tt>0</tt> (False)
+
; child_of : (''integer'') Only display categories that are children of the category identified by its ID. There is no default for this parameter.
+
; exclude : (''string'') Comma separated list of category IDs to exclude. For example, 'exclude=4,12' means category IDs 4 and 12 will NOT be displayed/echoed or returned. Defaults to exclude nothing.
+
; echo : (''boolean'') Display bookmarks (<tt>TRUE</tt>) or return them for use by PHP (<tt>FALSE</tt>). Defaults to <tt>TRUE</tt>.
+
:* <tt>1</tt> (True - default)
+
:* <tt>0</tt> (False)
+
; selected : (''integer'') Category ID of the category to be 'selected' or presented in the display box. Defaults to no category selected.
+
; hierarchical : (''boolean'') Display categories in hierarchical fashion (child categories show indented). Defaults to <tt>FALSE</tt>.
+
:* <tt>1</tt> (True)
+
:* <tt>0</tt> (False - Default)
+
; name : (''string'') Name assigned to the dropdown form. Defaults to 'cat'.
+
; class : (''string'') Class assinged to the dropdown form. Defaults to 'postform'.
+
  
== Related ==
+
; (文字列) : '<tt>echo</tt>' 引数が 0 の場合のみ HTML コンテンツを返します。
 +
 
 +
<div id="Arguments">
 +
== 引数 ==
 +
</div>
 +
 
 +
{{Parameter|show_option_all|文字列|クリックすると '<tt>すべてのカテゴリー</tt>' を選択できるテキスト。デフォルトでは、'<tt>すべてのカテゴリー</tt>' を選択できるテキストを表示しない。|オプション|&#39;&#39;}}
 +
 
 +
{{Parameter|show_option_none|文字列|クリックすると '<tt>カテゴリーなし</tt>' を指定できるテキスト。デフォルトでは、'<tt>カテゴリーなし</tt>' を指定できるテキストを表示しない。|オプション|&#39;&#39;}}
 +
 
 +
{{Parameter|option_none_value|文字列|「カテゴリーなし」option 要素の値。|オプション|-1}}
 +
 
 +
{{Parameter|orderby|文字列|カテゴリーをソートするためのキー項目。有効な値は:<ul><li>'ID'</li><li>'NAME'(名前)</li><li>'SLUG'(スラッグ)</li></ul>|オプション|'ID'}}
 +
 
 +
{{Parameter|order|文字列|カテゴリーをソートする方向。有効な値は:<ul><li>'<tt>ASC</tt>'(昇順)</li><li>'<tt>DESC</tt>'(降順)</li></ul>|オプション|'ASC'}}
 +
 
 +
{{Parameter|show_count|真偽値|各カテゴリーに属する投稿数を表示する (1/True) または、しない (0/False)|オプション|0/False}}
 +
 
 +
{{Parameter|hide_empty|真偽値|投稿のないカテゴリーを表示する (0/False) または、しない (1/True)|オプション|1/True}}
 +
 
 +
{{Parameter|child_of|整数|カテゴリーを ID で指定して、その子孫のすべてのカテゴリー(子、孫、ひ孫・・・)を表示する。[[関数リファレンス/get_categories|<tt>get_categories()</tt>]] を参照。|オプション|0}}
 +
 
 +
{{Parameter|exclude|文字列|除外したいカテゴリー ID をコンマ区切りで指定。|オプション|&#39;&#39;}}
 +
 
 +
: '''参考''':例えば 'exclude=4,12' とすれば、ID が 4 と 12 のカテゴリーを表示しない、または値として返さない。[[関数リファレンス/get_categories|<tt>get_categories()</tt>]] を参照。
 +
 
 +
{{Parameter|include|文字列/配列|含めたいカテゴリー ID を指定。[[関数リファレンス/get_categories|<tt>get_categories()</tt>]] を参照。|オプション|&#39;&#39;}}
 +
 
 +
{{Parameter|exclude_tree|文字列|コンマ区切りのリストで、除外したい親カテゴリーの ID を定義する。ある親カテゴリーとその子カテゴリーすべてを除外したい時に使う。<tt>hierarchical</tt> 引数が true の場合は、<tt>exclude</tt> 引数の値を使って exclude_tree と同じ処理が実行される。|オプション|&#39;&#39;}}
 +
 
 +
: '''参考''':例えば '<tt>exclude_tree=5</tt>' を指定すると、ID が 5 のカテゴリーとその子(すべての子孫)カテゴリーが除外される。
 +
 
 +
{{Parameter|echo|真偽値|カテゴリーリストを表示する (1/True) または、PHP で使うために値を返す (0/False)|オプション|1/True}}
 +
 
 +
{{Parameter|depth|整数|カテゴリー階層のどのレベルまでを出力するかを指定。<tt>hierarchical</tt> 引数が true でなければ、これは無視される。|オプション|0}}
 +
 
 +
:'''参考''':depth
 +
::* 0 - 全ての階層のカテゴリーを出力
 +
::* -1 - 全てのカテゴリーをフラット(インデントなし)形式で出力(hierarchical 引数よりも優先)
 +
::* 1 - 最上位カテゴリーのみ出力
 +
::* 2以上 - 指定した階層までを出力。例えば 2 を指定すると、最上位と直下の子カテゴリまでを出力。
 +
 
 +
{{Parameter|tab_index|整数|ドロップダウンメニューの <tt>select</tt> 要素に付ける '<tt>tabindex</tt>' 属性の値。|オプション|0}}
 +
 
 +
{{Parameter|name|文字列|ドロップダウンメニューのフォーム名(<tt>select</tt> 要素の '<tt>name</tt>' 属性)。|オプション|'cat'}}
 +
 
 +
{{Parameter|id|文字列|ドロップダウンメニューの ID(<tt>select</tt> 要素の '<tt>id</tt>' 属性)。|オプション|'name'}}
 +
 
 +
{{Parameter|class|文字列|ドロップダウンメニューのクラス(<tt>select</tt> 要素の '<tt>class</tt>' 属性)。|オプション|'postform'}}
 +
 
 +
{{Parameter|selected|整数|表示ボックスで 'selected' としたいカテゴリーの ID(これを付けるとドロップダウンメニューなどの選択値の初期値となる)。|オプション|0(どれにも付けない)}}
 +
 
 +
{{Parameter|hierarchical|真偽値|カテゴリーをフラットに表示する (0/False) または、階層形式(子孫カテゴリーをインデント)で表示する (1/True)|オプション|0/False}}
 +
 
 +
: '''参考''':階層形式 (hierarchical=true) にすると '<tt>depth</tt>' 引数で指定する階層までを表示する。
 +
 
 +
{{Parameter|pad_counts|真偽値|リンク数または投稿数を計算するとき、子孫カテゴリーからの数値を含める。'<tt>show_counts</tt>' と '<tt>hierarchical</tt>' が両方とも true の場合、この引数は自動的に true に設定される。|オプション|0/False}}
 +
 
 +
{{Parameter|taxonomy|文字列|指定したタクソノミーを返す。有効な値は:<ul><li>'<tt>category</tt>'(カテゴリー)</li><li>'<tt>post_tag</tt>'(タグ)</li><li>登録済みの[[カスタム分類]](タクソノミー)</li></ul>|オプション|category}}
 +
 
 +
{{Parameter|hide_if_empty|真偽値|ターム(例:カテゴリー、投稿タグ、カスタム分類の項目)が一つも無いときにフォーム自体を非表示にする (1/True) または、表示する (0/False)|オプション|0/False}}
 +
 
 +
{{Parameter|value_field|文字列|フォームの option 要素の 'value' 属性へ入れるタームのフィールド。タームの任意の有効なフィールド: '<tt>term_id</tt>', '<tt>name</tt>', '<tt>slug</tt>', '<tt>term_group</tt>', '<tt>term_taxonomy_id</tt>', '<tt>taxonomy</tt>', '<tt>description</tt>', '<tt>parent</tt>', '<tt>count</tt>'。|オプション|'term_id'}}
 +
 
 +
 
 +
<div id="Example">
 +
== 用例 ==
 +
</div>
 +
 
 +
<div id="Dropdown_with_Submit_Button">
 +
=== 送信ボタン付きドロップダウンメニュー ===
 +
</div>
 +
 
 +
WordPress サイドバーの箇条書きリスト内に、送信ボタン付きの HTML フォームとして、階層型カテゴリーのドロップダウンリストを表示します。
 +
各カテゴリーの投稿数も表示します。
 +
 
 +
<pre>
 +
<li id="categories">
 +
<h2><?php _e( 'Categories:' ); ?></h2>
 +
<form id="category-select" class="category-select" action="<?php echo esc_url( home_url( '/' ) ); ?>" method="get">
 +
<?php wp_dropdown_categories( 'show_count=1&hierarchical=1' ); ?>
 +
<input type="submit" name="submit" value="view" />
 +
</form>
 +
</li>
 +
</pre>
 +
 
 +
<div id="Dropdown_without_a_Submit_Button_using_JavaScript">
 +
=== JavaScript を用いた送信ボタンなしドロップダウンメニュー ===
 +
</div>
 +
 
 +
これは show_option_none パラメータを使った例です。
 +
[http://wordpress.org/support/topic/145489?replies=13#post-657759 Moshu さんのフォーラムの投稿]から転載しました。
 +
 
 +
<pre>
 +
<li id="categories"><h2><?php _e( 'Posts by Category' ); ?></h2>
 +
<?php wp_dropdown_categories( 'show_option_none=Select category' ); ?>
 +
<script type="text/javascript">
 +
<!--
 +
var dropdown = document.getElementById("cat");
 +
function onCatChange() {
 +
if ( dropdown.options[dropdown.selectedIndex].value > 0 ) {
 +
location.href = "<?php echo esc_url( home_url( '/' ) ); ?>?cat="+dropdown.options[dropdown.selectedIndex].value;
 +
}
 +
}
 +
dropdown.onchange = onCatChange;
 +
-->
 +
</script>
 +
</li>
 +
</pre>
 +
 
 +
<div id="Dropdown_without_a_Submit_Button_using_JavaScript_.282.29">
 +
=== JavaScript を用いた送信ボタンなしドロップダウンメニュー (2) ===
 +
</div>
 +
 
 +
この例は ''echo'' パラメータ (echo=0) を使っています。
 +
簡単な ''preg_replace'' を使って JavaScript のコードを追加しています。
 +
JavaScript が使えない環境でも動作します(送信ボタンを ''noscript'' タグ内に埋め込んであるから)。
 +
 
 +
<pre>
 +
<li id="categories">
 +
<h2><?php _e( 'Posts by Category' ); ?></h2>
 +
<form id="category-select" class="category-select" action="<?php echo esc_url( home_url( '/' ) ); ?>" method="get">
 +
 
 +
<?php
 +
$args = array(
 +
'show_option_none' => __( 'Select category' ),
 +
'show_count'      => 1,
 +
'orderby'          => 'name',
 +
'echo'            => 0,
 +
);
 +
?>
 +
 
 +
<?php $select  = wp_dropdown_categories( $args ); ?>
 +
<?php $replace = "<select$1 onchange='return this.form.submit()'>"; ?>
 +
<?php $select  = preg_replace( '#<select([^>]*)>#', $replace, $select ); ?>
 +
 
 +
<?php echo $select; ?>
 +
 
 +
<noscript>
 +
<input type="submit" value="View" />
 +
</noscript>
 +
 
 +
</form>
 +
</li>
 +
</pre>
 +
 
 +
 
 +
<div id="Troubleshooting">
 +
== トラブルシューティング ==
 +
</div>
 +
 
 +
<div id="Empty_dropdown">
 +
=== 空のドロップダウン ===
 +
</div>
 +
 
 +
デフォルトでは、wp_dropdown_categories は、少なくともひとつの投稿に付けられているカテゴリーだけを返します。この機能を変更したい場合は、'hide_empty' 引数を false("0")に設定する必要があります。
 +
 
 +
例:
 +
<pre><?php wp_dropdown_categories( 'hide_empty=0' ); ?></pre>
 +
 
 +
<div id="Dropdown_with_all_values_selected">
 +
=== 選択したすべての値を持つドロップダウン ===
 +
</div>
 +
 
 +
'selected' 引数のデフォルト値は 0 ですが、これはドロップダウンのすべてのタームが選択されたとしてマークされてしまう可能性があります。この問題を解決するには、'selected' 引数を 0 ではなく false に設定します。
 +
 
 +
例:
 +
<pre><?php wp_dropdown_categories( 'selected=false' ); ?></pre>
 +
 
 +
 
 +
<div id="Notes">
 +
== 参考 ==
 +
</div>
 +
 
 +
* 一度に複数の値を選べるようにするには、[[関数リファレンス/wp_category_checklist|wp_category_checklist()]] /[[:en:Function_Reference/wp_category_checklist|en]] を使ってください。
 +
* 結果の文字列を echo または返す前に [[プラグイン API/フィルターフック一覧/wp_dropdown_cats|wp_dropdown_cats]] /[https://developer.wordpress.org/reference/hooks/wp_dropdown_cats/ en] フィルターが適用されます。
 +
 
 +
<div id="Change_Log">
 +
== 変更履歴 ==
 +
</div>
 +
 
 +
* [[Version 2.9|2.9]] : パラメータに pad_counts を追加
 +
* [[Version 2.7.1|2.7.1]] : パラメータに exclude_tree を追加
 +
* [[Version 2.5|2.5]] : パラメータに depth を追加
 +
* [[Version 2.1|2.1]] : 新規テンプレートタグ
 +
 
 +
<div id="Source_File">
 +
== ソースファイル ==
 +
</div>
 +
 
 +
<tt>wp_dropdown_categories()</tt> は {{Trac|wp-includes/category-template.php}} にあります。
 +
 
 +
<div id="Related">
 +
== 関連項目 ==
 +
</div>
  
 
{{Tag Category Tags}}
 
{{Tag Category Tags}}
  
{{PHP Function Tag Footer}}
+
{{Lists Tags}}
[[Category:New page created]]
+
 
 +
{{Tag Footer}}
 +
 
 +
{{原文|Function Reference/wp_dropdown_categories|152702}} <!-- 12:13, 22 July 2015 Littler.chicken 版 -->
 +
 
 +
{{DEFAULTSORT:Wp_dropdown_categories}}  
 +
[[Category:テンプレートタグ]]
 +
 
 +
[[en:Function Reference/wp_dropdown_categories]]

2015年9月22日 (火) 13:41時点における最新版

送信ボタンのないセレクトボックス(ドロップダウンメニューなど)を使ったカテゴリーリストを表示します。

使い方

<?php wp_dropdown_categories( $args ); ?>

デフォルトの使い方

<?php $args = array(
	'show_option_all'    => '',
	'show_option_none'   => '',
	'option_none_value'  => '-1',
	'orderby'            => 'ID', 
	'order'              => 'ASC',
	'show_count'         => 0,
	'hide_empty'         => 1, 
	'child_of'           => 0,
	'exclude'            => '',
	'echo'               => 1,
	'selected'           => 0,
	'hierarchical'       => 0, 
	'name'               => 'cat',
	'id'                 => '',
	'class'              => 'postform',
	'depth'              => 0,
	'tab_index'          => 0,
	'taxonomy'           => 'category',
	'hide_if_empty'      => false,
	'value_field'	     => 'term_id',	
); ?>

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

  • カテゴリー ID の昇順にソート
  • 最終更新日は非表示
  • 各カテゴリーの投稿数は非表示
  • 空の(投稿のない)カテゴリーは非表示
  • 除外カテゴリーなし
  • カテゴリーを表示(表示するか値として返すか選べるので)
  • フォームの 'selected'(初期選択値)とするカテゴリーなし
  • カテゴリーを階層型構造で表示しない
  • フォーム名を 'cat' とする
  • フォーム内のカテゴリーの ID 属性を指定しないため(デフォルトの)カテゴリー名が入る
  • フォームのクラスを 'postform' とする
  • 階層の深さ制限なし
  • フォームの tabindex を 0 にする
  • タクソノミーを 'category' にする
  • カテゴリー(タクソノミー 'category' のターム)が一つもなければフォーム自体を非表示
  • ドロップダウンオプションを選択するとターム ID を出力


パラメータ

$args
文字列|配列) (オプション) デフォルトの引数を上書きします。下記の引数を参照してください。
初期値:

戻り値

(文字列) 
'echo' 引数が 0 の場合のみ HTML コンテンツを返します。

引数

show_option_all
文字列) (オプション) クリックすると 'すべてのカテゴリー' を選択できるテキスト。デフォルトでは、'すべてのカテゴリー' を選択できるテキストを表示しない。
初期値: ''
show_option_none
文字列) (オプション) クリックすると 'カテゴリーなし' を指定できるテキスト。デフォルトでは、'カテゴリーなし' を指定できるテキストを表示しない。
初期値: ''
option_none_value
文字列) (オプション) 「カテゴリーなし」option 要素の値。
初期値: -1
orderby
文字列) (オプション) カテゴリーをソートするためのキー項目。有効な値は:
  • 'ID'
  • 'NAME'(名前)
  • 'SLUG'(スラッグ)
初期値: 'ID'
order
文字列) (オプション) カテゴリーをソートする方向。有効な値は:
  • 'ASC'(昇順)
  • 'DESC'(降順)
初期値: 'ASC'
show_count
真偽値) (オプション) 各カテゴリーに属する投稿数を表示する (1/True) または、しない (0/False)
初期値: 0/False
hide_empty
真偽値) (オプション) 投稿のないカテゴリーを表示する (0/False) または、しない (1/True)
初期値: 1/True
child_of
整数) (オプション) カテゴリーを ID で指定して、その子孫のすべてのカテゴリー(子、孫、ひ孫・・・)を表示する。get_categories() を参照。
初期値: 0
exclude
文字列) (オプション) 除外したいカテゴリー ID をコンマ区切りで指定。
初期値: ''
参考:例えば 'exclude=4,12' とすれば、ID が 4 と 12 のカテゴリーを表示しない、または値として返さない。get_categories() を参照。
include
文字列/配列) (オプション) 含めたいカテゴリー ID を指定。get_categories() を参照。
初期値: ''
exclude_tree
文字列) (オプション) コンマ区切りのリストで、除外したい親カテゴリーの ID を定義する。ある親カテゴリーとその子カテゴリーすべてを除外したい時に使う。hierarchical 引数が true の場合は、exclude 引数の値を使って exclude_tree と同じ処理が実行される。
初期値: ''
参考:例えば 'exclude_tree=5' を指定すると、ID が 5 のカテゴリーとその子(すべての子孫)カテゴリーが除外される。
echo
真偽値) (オプション) カテゴリーリストを表示する (1/True) または、PHP で使うために値を返す (0/False)
初期値: 1/True
depth
整数) (オプション) カテゴリー階層のどのレベルまでを出力するかを指定。hierarchical 引数が true でなければ、これは無視される。
初期値: 0
参考:depth
  • 0 - 全ての階層のカテゴリーを出力
  • -1 - 全てのカテゴリーをフラット(インデントなし)形式で出力(hierarchical 引数よりも優先)
  • 1 - 最上位カテゴリーのみ出力
  • 2以上 - 指定した階層までを出力。例えば 2 を指定すると、最上位と直下の子カテゴリまでを出力。
tab_index
整数) (オプション) ドロップダウンメニューの select 要素に付ける 'tabindex' 属性の値。
初期値: 0
name
文字列) (オプション) ドロップダウンメニューのフォーム名(select 要素の 'name' 属性)。
初期値: 'cat'
id
文字列) (オプション) ドロップダウンメニューの ID(select 要素の 'id' 属性)。
初期値: 'name'
class
文字列) (オプション) ドロップダウンメニューのクラス(select 要素の 'class' 属性)。
初期値: 'postform'
selected
整数) (オプション) 表示ボックスで 'selected' としたいカテゴリーの ID(これを付けるとドロップダウンメニューなどの選択値の初期値となる)。
初期値: 0(どれにも付けない)
hierarchical
真偽値) (オプション) カテゴリーをフラットに表示する (0/False) または、階層形式(子孫カテゴリーをインデント)で表示する (1/True)
初期値: 0/False
参考:階層形式 (hierarchical=true) にすると 'depth' 引数で指定する階層までを表示する。
pad_counts
真偽値) (オプション) リンク数または投稿数を計算するとき、子孫カテゴリーからの数値を含める。'show_counts' と 'hierarchical' が両方とも true の場合、この引数は自動的に true に設定される。
初期値: 0/False
taxonomy
文字列) (オプション) 指定したタクソノミーを返す。有効な値は:
  • 'category'(カテゴリー)
  • 'post_tag'(タグ)
  • 登録済みのカスタム分類(タクソノミー)
初期値: category
hide_if_empty
真偽値) (オプション) ターム(例:カテゴリー、投稿タグ、カスタム分類の項目)が一つも無いときにフォーム自体を非表示にする (1/True) または、表示する (0/False)
初期値: 0/False
value_field
文字列) (オプション) フォームの option 要素の 'value' 属性へ入れるタームのフィールド。タームの任意の有効なフィールド: 'term_id', 'name', 'slug', 'term_group', 'term_taxonomy_id', 'taxonomy', 'description', 'parent', 'count'。
初期値: 'term_id'


用例

WordPress サイドバーの箇条書きリスト内に、送信ボタン付きの HTML フォームとして、階層型カテゴリーのドロップダウンリストを表示します。 各カテゴリーの投稿数も表示します。

<li id="categories">
	<h2><?php _e( 'Categories:' ); ?></h2>
	<form id="category-select" class="category-select" action="<?php echo esc_url( home_url( '/' ) ); ?>" method="get">
		<?php wp_dropdown_categories( 'show_count=1&hierarchical=1' ); ?>
		<input type="submit" name="submit" value="view" />
	</form>
</li>

これは show_option_none パラメータを使った例です。 Moshu さんのフォーラムの投稿から転載しました。

<li id="categories"><h2><?php _e( 'Posts by Category' ); ?></h2>
	<?php wp_dropdown_categories( 'show_option_none=Select category' ); ?>
	<script type="text/javascript">
		<!--
		var dropdown = document.getElementById("cat");
		function onCatChange() {
			if ( dropdown.options[dropdown.selectedIndex].value > 0 ) {
				location.href = "<?php echo esc_url( home_url( '/' ) ); ?>?cat="+dropdown.options[dropdown.selectedIndex].value;
			}
		}
		dropdown.onchange = onCatChange;
		-->
	</script>
</li>

この例は echo パラメータ (echo=0) を使っています。 簡単な preg_replace を使って JavaScript のコードを追加しています。 JavaScript が使えない環境でも動作します(送信ボタンを noscript タグ内に埋め込んであるから)。

<li id="categories">
	<h2><?php _e( 'Posts by Category' ); ?></h2>
	<form id="category-select" class="category-select" action="<?php echo esc_url( home_url( '/' ) ); ?>" method="get">

		<?php
		$args = array(
			'show_option_none' => __( 'Select category' ),
			'show_count'       => 1,
			'orderby'          => 'name',
			'echo'             => 0,
		);
		?>

		<?php $select  = wp_dropdown_categories( $args ); ?>
		<?php $replace = "<select$1 onchange='return this.form.submit()'>"; ?>
		<?php $select  = preg_replace( '#<select([^>]*)>#', $replace, $select ); ?>

		<?php echo $select; ?>

		<noscript>
			<input type="submit" value="View" />
		</noscript>

	</form>
</li>


トラブルシューティング

空のドロップダウン

デフォルトでは、wp_dropdown_categories は、少なくともひとつの投稿に付けられているカテゴリーだけを返します。この機能を変更したい場合は、'hide_empty' 引数を false("0")に設定する必要があります。

例:

<?php wp_dropdown_categories( 'hide_empty=0' ); ?>

'selected' 引数のデフォルト値は 0 ですが、これはドロップダウンのすべてのタームが選択されたとしてマークされてしまう可能性があります。この問題を解決するには、'selected' 引数を 0 ではなく false に設定します。

例:

<?php wp_dropdown_categories( 'selected=false' ); ?>


参考

  •  一度に複数の値を選べるようにするには、wp_category_checklist() /en を使ってください。
  •  結果の文字列を echo または返す前に wp_dropdown_cats /en フィルターが適用されます。

変更履歴

  • 2.9 : パラメータに pad_counts を追加
  • 2.7.1 : パラメータに exclude_tree を追加
  • 2.5 : パラメータに depth を追加
  • 2.1 : 新規テンプレートタグ

ソースファイル

wp_dropdown_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()


リスト・ドロップダウン関数: 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 » Function Reference/wp_dropdown_categories最新版との差分