wp_dropdown_categories()
は、指定したカテゴリーを選択形式の <select>
ドロップダウンメニューで出力するためのテンプレートタグです。カテゴリーをフィルタリングする機能や、ユーザーにカテゴリーの選択を促すUIで使用されます。
機能の説明
wp_dropdown_categories()
は、WordPressサイトで定義されたカテゴリーを <select>
タグでラップし、ドロップダウンメニューとして出力するための関数です。複数のオプションを指定でき、カテゴリーのリストを自動生成するのに便利です。
シンプルなコード例
<?php wp_dropdown_categories(); ?>
このコードは、サイトに存在するすべてのカテゴリーをドロップダウン形式で表示します。
使い方の解説
wp_dropdown_categories()
では、様々な引数を使用して、カテゴリーの表示方法をカスタマイズできます。たとえば、選択メニューの初期値、特定のカテゴリーの除外、階層表示などが可能です。
使用例
<?php
wp_dropdown_categories( array(
'show_option_none' => 'カテゴリーを選択',
'orderby' => 'name',
'hide_empty' => true,
'hierarchical' => true,
'name' => 'cat',
'value_field' => 'term_id',
) );
?>
show_option_none
: 初期表示のテキスト(「カテゴリーを選択」)。orderby
: カテゴリーの並び順(ここではカテゴリー名で並び替え)。hide_empty
: 投稿が1つもないカテゴリーを非表示にするかどうか(true
で非表示)。hierarchical
: カテゴリーの階層構造を反映させる。name
: ドロップダウンの<select>
タグに指定する名前。value_field
: 各カテゴリーの値としてterm_id
を使用。
この例では、階層構造を保ったカテゴリー一覧を、<select>
タグで表示します。
一緒に使うことが多い関連タグ
get_categories()
get_categories()
は、カテゴリーのリストを配列として取得するテンプレートタグです。wp_dropdown_categories()
で動的にカテゴリーの選択リストを作りたい場合、get_categories()
でフィルタリングすることがよくあります。
<?php
$categories = get_categories( array( 'hide_empty' => true ) );
foreach ( $categories as $category ) {
echo '<li>' . esc_html( $category->name ) . '</li>';
}
?>
この例では、get_categories()
で取得したカテゴリーを <li>
タグで表示します。wp_dropdown_categories()
が <select>
要素でリストを表示するのに対し、get_categories()
は配列として取り出し、自由な形式で出力できる点が異なります。
get_the_category()
get_the_category()
は、特定の投稿に割り当てられたカテゴリーを取得するテンプレートタグです。wp_dropdown_categories()
でカテゴリーを選択し、get_the_category()
を使って選択されたカテゴリーに関連する投稿を取得する流れで使うことが多いです。
<?php
$categories = get_the_category();
if ( ! empty( $categories ) ) {
echo '<p>この投稿のカテゴリー: ' . esc_html( $categories[0]->name ) . '</p>';
}
?>
追加情報を取得したい場合
wp_dropdown_categories()
では、カテゴリーの情報を取得するだけでなく、選択されたカテゴリーをもとにフィルタリングやクエリを実行することがよくあります。get_category_link()
を使えば、選択したカテゴリーへのリンクを生成することも可能です。
get_category()
で取得できる情報
get_category()
は、指定したIDのカテゴリーの詳細情報を取得します。
<?php
$category = get_category( 5 );
echo 'カテゴリー名: ' . esc_html( $category->name ) . '<br>';
echo 'スラッグ: ' . esc_html( $category->slug ) . '<br>';
echo '説明: ' . esc_html( $category->description );
?>
出力できる情報
name
: カテゴリー名slug
: カテゴリーのスラッグ(URLフレンドリーな名前)description
: カテゴリーの説明term_id
: カテゴリーID
想定されるトラブル
カテゴリーが表示されない
投稿が一つもないカテゴリーが存在する場合。
解決方法
'hide_empty' => false
を指定して、すべてのカテゴリーを表示します。
初期表示のテキストが変更されない
show_option_none
の引数が指定されていないか、誤っている可能性があります。
解決方法
'show_option_none' => 'カテゴリーを選択'
のように正しく設定してください。
JavaScriptのカスタム動作が動かない
ドロップダウンの name
属性が他の要素と競合している可能性があります。
解決方法
カスタムスクリプトで正しい要素を指定しているか確認し、ユニークな名前を使うようにします。
Q&A
まとめ
wp_dropdown_categories()
は、カテゴリーを選択形式のドロップダウンメニューで表示する便利なテンプレートタグです。
カテゴリーの選択機能を簡単に実装でき、ユーザーに特定のカテゴリーを選ばせたい場面で役立ちます。
get_categories()
や get_the_category()
といった関連タグと組み合わせることで、カテゴリー情報を柔軟に取得・表示できます。また、選択したカテゴリーを使った投稿の絞り込みにも対応しており、WordPressサイトのカスタマイズに欠かせない機能です。
コメント