WordPress

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

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

概要

次のコードは、現在表示している投稿に紐づくタームの一覧と、そのタームのタクソノミーのラベルを一緒に表示する方法です。


<?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 で投稿に紐づくタームの一覧をタクソノミーのラベルと一緒に表示する方法を紹介しました。

スポンサーリンク

合わせて読みたい関連記事