WordPress
WordPressでタクソノミーの情報を取得する方法
WordPressで、カスタムタクソノミーの情報を取得する方法をご紹介します。タームを取得する方法はこちらをご参照ください。
カスタムタクソノミーとタームとは?
カスタムタクソノミーは、通常の投稿でいうカテゴリーやタグのことで、そのような器自体を指します。タームは、カスタムタクソノミーの中の項目のことです。
詳しくはこちらで解説しています。
関数
get_taxonomy
<?php get_taxonomy( 'タクソノミースラッグ名' ) ; ?>
例えば’商品’というカスタム投稿タイプがあり、’メーカー’というラベルでスラッグ名が’maker_cat’のカスタムタクソノミーがあるとすると、
<?php
$tax_name = get_taxonomy( 'maker_cat' ) ;
echo $tax_name -> label;
?>
で「メーカー」と表示されます。
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
<?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
<?php the_taxonomies( $args ); ?>
ループの中で使用すると、投稿に紐づいたタクソノミーをリンク付きのHTMLで出力。
ループの外で使用すると、ループの最終投稿に紐づいたタクソノミーを表示。
まとめ
タクソノミーの情報取得方法をご紹介しました。