Site Overlay

WordPressの特定の記事の特定のタクソノミーを表示する


WordPressで特定の記事に紐づけられた特定のタクソノミーを表示する方法です。
文章だとわかりづらいですが、以下のような場面で使いたくなるやつです。

例)
カスタム投稿タイプ「制作実績」
カスタムタクソノミー「業種」

トップページに、特定の制作実績「○○歯科医院HP」をピックアップとして出したい。
その際、業種として登録している「病院」「医療」を一緒に出したい。

コード

表示させたいテーマファイルに記述
<?php
//ピックアップしたい投稿のIDが10、タクソノミーのスラッグが「genre」の場合
$terms = wp_get_post_terms( 10, 'genre' );

foreach( $terms as $term ){
	echo $term->name;
}
?>

wp_get_post_termsをすると、記事に紐づいている指定したタクソノミーの情報が配列で返ってきます。その中からターム名にあたる「name」を取り出してやればOK。

配列には、ターム名以外にも、タームのIDやスラッグが含まれています。他に何が含まれているかはCodex参照

もしターム名以外の情報がいらないなら、最初からnameに限定して配列を取得することも可能です。↓

nameだけを取得する場合
<?php
//ピックアップしたい投稿のIDが10、タクソノミーのスラッグが「genre」の場合
$terms = wp_get_post_terms( 10, 'genre', array('fields' => 'names') );

foreach( $terms as $term ){
	echo $term;
}
?>