WordPress

WordPressでタクソノミーの情報を取得する方法

WordPressで、カスタムタクソノミーの情報を取得する方法をご紹介します。タームを取得する方法はこちらをご参照ください。

カスタムタクソノミーとタームとは?

カスタムタクソノミーは、通常の投稿でいうカテゴリーやタグのことで、そのような器自体を指します。タームは、カスタムタクソノミーの中の項目のことです。
詳しくはこちらで解説しています。

関数

get_taxonomy

関数リファレンス/get taxonomy

<?php get_taxonomy( 'タクソノミースラッグ名' ) ; ?>

例えば’商品’というカスタム投稿タイプがあり、’メーカー’というラベルでスラッグ名が’maker_cat’のカスタムタクソノミーがあるとすると、

<?php
$tax_name = get_taxonomy( 'maker_cat' ) ;
echo $tax_name -> label;
?>

で「メーカー」と表示されます。

get_the_taxonomies

関数リファレンス/get the taxonomies

<?php
get_the_taxonomies( $post->ID, $args );
?>

この関数を用いて、投稿ページに紐づいたタクソノミーを取得可能です。

$tax_slug = array_keys(get_the_taxonomies())[0]; //タクソノミースラッグ名
get_taxonomy($tax_slug);
echo $tax_name -> label; //タクソノミーのラベル名

get_taxonomies

関数リファレンス/get_taxonomies

<?php
$tax_args = array(
   'public' => true
);
$taxonomies = get_taxonomies( $tax_args, 'names' ); 
foreach ($taxonomies as $tax):
   $term_args = array(
      'orderby' => 'term_group',
      'order' => 'DESC',
      'hide_empty' => true
   );
   $terms = get_terms( $tax, $term_args );
   if ($terms):
   ?>
      <h2><?php echo $tax; ?></h2>
            <ul>
            <?php foreach ($terms as $term): ?>
                <li><?php echo $term->name; ?></li>
             <?php endforeach; ?>
             </ul>
   <?php endif; ?>
<?php endforeach; ?>

上記は、タームが存在するすべてのタクソノミー名およびタームを取得して表示する例です。

the_taxonomies

関数リファレンス/the taxonomies

<?php the_taxonomies( $args ); ?>

ループの中で使用すると、投稿に紐づいたタクソノミーをリンク付きのHTMLで出力。
ループの外で使用すると、ループの最終投稿に紐づいたタクソノミーを表示。

まとめ

タクソノミーの情報取得方法をご紹介しました。

著者のイメージ画像

株式会社BringFlower
稲田 高洋(Takahiro Inada)

2003年から大手総合電機メーカーでUXデザインプロセスの研究、実践。UXデザイン専門家の育成プログラム開発。SEOにおいても重要なW3Cが定めるWeb標準仕様策定にウェブアクセシビリティの専門家として関わる。2010~2018年に人間中心設計専門家を保有、数年間ウェブアクセシビリティ基盤委員も務める。その後、不動産会社向けにSaaSを提供する企業の事業開発部で複数サービスを企画、ローンチ。CMSを提供し1000以上のサイトを分析。顧客サポート、サイト運営にも関わる。
2022年3月に独立後、2024年4月に株式会社BringFlowerを設立。SEOコンサルを活動の軸に据えつつ、AIライティングツールの開発と運営を自ら行う。グッドデザイン賞4件、ドイツユニバーサルデザイン賞2件、米国IDEA賞1件の受賞歴あり。