キタックCGソリューションセンター

自分で触りたいWeb担のためのTips集

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

2021年06月11日(金)

0

0

PV 22

実装者向けの記事です。

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

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

いったん「タクソノミー(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 プリーズ
書き手は私

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

この記事のタイトル
【Wordpress】特定のタクソノミー内のタームの有無で条件分岐
感想を送るノート
お名前必須
メールアドレス必須
ご意見・ご感想必須

ご入力いただいた内容は、当社プライバシーポリシーに基づき厳重に管理いたします。メールの返信以外には使用しません。プライバシーポリシーに同意の上、お進みください。


表示された5文字の英数字を入力してください。

確認画面はありません。
いったんページの上部に戻りますが、問題なく送信されます。

キタックCGSCコアメンバー

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