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で出力。
ループの外で使用すると、ループの最終投稿に紐づいたタクソノミーを表示。

まとめ

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