実装者向けの記事です。
タクソノミー(カスタム分類)を用意しました。
で、記事の一覧ページにそのタクソノミーのターム一覧を出したいんだけど、運営者(お客さん)がタームを作り始めるまでは、ブロックごと隠しておきたい。
そんなときの条件分岐の実装メモです。
タクソノミーとタームを整理
いったん「タクソノミー(taxonomy)」と「ターム(term)」を整理しておきましょう。
- タクソノミー:カテゴリの名前みたいなもの(ex 昆虫)
- ターム:そのカテゴリ内のカテゴリA、カテゴリB、カテゴリC(ex カブトムシ、イモムシ、テントウムシ)
昆虫(タクソノミー)
カブトムシ(ターム)
イモムシ(ターム)
テントウムシ(ターム)
鳥(タクソノミー)
スズメ(ターム)
カラス(ターム)
こんなイメージです。
if( get_categories(‘taxonomy=◯◯◯’) )
で、どのように条件分岐するかというと、get_categories() が使えます。
get_categories(‘taxonomy=◯◯◯’) で、そのタクソノミー内にタームがひとつでも存在すれば true を返してくれます。
<?php if( get_categories('taxonomy=my_taxo') ): ?>
<ul>
$termlist = wp_list_categories(array(
'taxonomy' => 'my_taxo',
// 他のオプションもいろいろ
'title_li' => '', // リストの外側に表示されるタイトルを非表示
'show_count' => 1, // タームの投稿数を表示
));
echo $termlist; // ターム一覧を表示
</ul>
<?php endif; ?>
こうすれば、「my_taxo」というタクソノミー内に記事と紐付いたタームがあるときだけ、ターム一覧が表示されます。なければ表示されません。
例えばクライアントが「将来的にタグを使いたいんだけど、最初はまだ使わない」っていうときとか、「ページごとにタームがあれば表示するしなければ表示しない」っていうときに使えますね。
ちなみにターム一覧の表示は wp_list_categories() で行いました。オプションがいろいろ使えます。
よろしければどうかご感想を!
※コメントは、サイト管理者による承認後、ページに表示されます。