株式会社プロネット

 

WEBシステム開発、ITコンサルティング、自社サービス、教育事業 - これからのビジネスへのIT活用ソリューションをご提案致します。

【WordPress】記事が未登録のタクソノミーのタームリストを取得する

2015.7.29(Wed) 23:13 | WordPress | sofuku

久しぶりにWordPressを触っていて、タクソノミーのタームを一覧で取得する必要があったのですがちょっとハマりました。
登録されているカテゴリなどから選択肢を動的に作成するような場合に、wp_list_categoriesやget_termsを使ってタクソノミーのタームを取得できますが、デフォルトだと記事が存在するタームしか取得してくれません。
備忘録も兼ねて、記事が存在しなくてもタームを取得する方法をメモしておきます。

環境

WordPress:4.2.3

 

パラメーター「hide_empty」

調べてみると、get_termsやwp_list_categoriesにはhide_emptyというオプションがありました。

投稿のないカテゴリーを非表示にするかを、真偽値で設定できます。

1 (true) – 表示

0 (false) – 非表示(初期値)

初期値が非表示なのですね。こいつに真を設定してあげます。

 

// get_terms
 
// パラメータの{タクソノミー名}には取得したいタクソノミー名称を設定します
 
$terms= get_terms( '{タクソノミー名}', 'hide_empty=0');
foreach( $terms as $term ) {
 
echo '<span>' .$term->name. '</span>';
 
}
 
&nbsp;
 
// wp_list_categories
 
// こちらも、パラメータの{タクソノミー名}には取得したいタクソノミー名称を設定します
echo '<ul>' . wp_list_categories(array(
 
    'title_li' => '', 'taxonomy' => '{タクソノミー名}','hide_empty' => 0
 
)) . '</ul>';

 

他パラメーターの指定方法など詳しくはget_termsか、wp_get_categoriesを参考にしてみてください。