新潟のウェブ制作会社 株式会社キタックCGソリューションセンター

Web担当者のためのTips集

【WordPress】特定のタクソノミー内のタームの有無で条件分岐

2021年06月11日(金)

PV 2,897

実装者向けの記事です。

タクソノミー(カスタム分類)を用意しました。
で、記事の一覧ページにそのタクソノミーのターム一覧を出したいんだけど、運営者(お客さん)がタームを作り始めるまでは、ブロックごと隠しておきたい。
そんなときの条件分岐の実装メモです。

タクソノミーとタームを整理

いったん「タクソノミー(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() で行いました。オプションがいろいろ使えます。

Share プリーズ
書き手は私

よろしければどうかご感想を!

※コメントは、サイト管理者による承認後、ページに表示されます。

あたたかい感想を書く

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


キタックCGSCコアメンバー

  • 樋口大輔
  • 小林将太
  • ちゃんまき
  • 高橋どらみ
  • 高橋皓一
  • 笠井
  • 石本
  • 佐藤サバ美
  • 佐久間尭