get_termsやwp_list_categoriesを使って指定したタクソノミーに属するすべてのタームリストを取得する方法

get_termsやwp_list_categoriesを使って指定したタクソノミーに属するすべてのタームリストを取得する方法

get_termsやwp_list_categoriesを使って指定したタクソノミーに属するすべてのタームリストを取得する方法
  • シェアしてね♪
  • このエントリーをはてなブックマークに追加


  • 一式98,000円~の格安プランをご用意!Web制作お任せください!
  • このエントリーをはてなブックマークに追加

先日コメントでこのような質問をいただきました。

「指定したタクソノミーのタームをすべて取得したいけど、記事が存在するタームしか表示されない。記事が存在しないタームも取得する方法はないか?」

wp_list_categories や get_terms を使えば、指定したタクソノミーのタームを取得することができますが、デフォルトの状態だと記事が作成されているタームしか取得してくれません。

質問者様は、サイト上の登録フォームで、カスタム分類、カテゴリを連動式にした選択項目を設けたいため、記事が存在していなくてもタームのリストを取得したいということでした。

そこでキーとなるのが hide_empty という引数です。hide_empty はデフォルトでは True(1) になっていて、タームに紐付く記事が存在しない場合はそのターム情報を取得しません。

結論から言っちゃうと hide_empty を False(0) にすれば、投稿のないタームも取得することができます。

スポンサードリンク

get_termsで指定したタクソノミーに属するすべてのタームを取得する

get_terms を使って、指定したタクソノミーの一覧を表示するには、テーマファイル内のリストを表示させたい場所に以下のようなコードを記述します。

<?php
$terms = get_terms( 'タクソノミー名', 'hide_empty=0' );
foreach ( $terms as $term ) {
echo '<div>' .$term->name. '</div>';
}
?>

タクソノミー名の部分には、タームを取り出したいタクソノミー名を入れてください。このように記述することで、各タームが div 要素として出力されます。

wp_list_categoriesで指定したタクソノミーに属するすべてのタームを取得する

wp_list_categories については、以前「カスタムタクソノミーを投稿数付きでリスト表示させるためのテーマカスタマイズ」という記事を書きました。この時に紹介したコードを基に紹介したいと思います。

記事が存在しないタームも取得するので、投稿数はなしで表示させます。

<ul><?php wp_list_categories(array('title_li' => '', 'taxonomy' => 'タクソノミー名','hide_empty' => 0)); ?></ul>

こちらもタクソノミー名のところに、タームを取得したいタクソノミー名を入れてください。

あとがき

他に困っている方もいるかもしれないと思ったので、記事にさせていただきました。

出力されるタームリストにリンクがついていない方が良ければ get_terms で、リンク付きが良ければ wp_list_categories を使いましょう。

この記事が気に入ったら
いいね!してね♪

Twitter で
スポンサードリンク

関連記事

コメントを残す

メールアドレスが公開されることはありません。