WordPress 投稿に紐づくタームの一覧をタクソノミーのラベルと一緒に表示する方法

WordPress 投稿に紐づくタームの一覧をタクソノミーのラベルと一緒に表示する方法

WordPress で投稿に紐づくタームの一覧をタクソノミーのラベルと一緒に表示する方法を紹介します。
例えば、投稿に紐づくタームの一覧を動的に表示するときに、タクソノミーのラベルも動的に表示するのに便利な方法です。

投稿に紐づくタームの一覧をタクソノミーのラベルと一緒に表示

投稿に紐づくタームの一覧をタクソノミーのラベルと一緒に表示するには get_object_taxonomies を使用します。
例えば、現在表示している投稿に紐づくタームの一覧と、そのタームのタクソノミーのラベルを一緒に表示するには、次のコードをテンプレートファイルのメインループやサブループ内に追加します。

<?php // 投稿に紐づくタームの一覧をタクソノミーのラベルと一緒に表示
$post_object = get_post( $post->ID ); // 投稿オブジェクトを取得
$post_type = $post_object->post_type; // 投稿のポストタイプを取得
$taxonomies = get_object_taxonomies( $post_type, 'objects' ); // 投稿タイプに関連したすべてのタクソノミーを取得
foreach ( $taxonomies as $taxonomy_slug => $taxonomy ){
$terms = get_the_terms( $post->ID, $taxonomy_slug );
if ( !empty( $terms ) ){
echo '<h2>'.$taxonomy->label.'</h2><ul>'; // タクソノミーの名前(ラベル)を表示
foreach ( $terms as $term ) {
echo '<li><a href="'.get_term_link( $term->slug, $taxonomy_slug ).'">'.$term->name.'</a></li>'; // リンク付きのタームを表示
}
echo '</ul>';
}
}
?>

投稿タイプやタクソノミースラッグは自動で取得するので、簡単に実装できると思います。
まずは投稿オブジェクトを取得して、その値を元にポストタイプを取得。
取得したポストタイプから全てのタクソノミーを取得して、投稿に紐づくタームの一覧を表示します。

まとめ

WordPress で投稿に紐づくタームの一覧をタクソノミーのラベルと一緒に表示する方法を紹介しました。