Categories: WordPress開発

投稿に属するカテゴリやカスタムタクソノミーのタームを取得する

投稿に属するタクソノミのタームを取得するには、どうやら、二種類あるようです。

wp_get_post_terms
get_the_terms

よく似ているので、ちょっと調べました。
いずれも内部でwp_get_object_termsを呼び出しています。なので、出力結果はおなじです。

ただし、引数の数がちがいますね。

wp_get_post_terms( $post_id, $taxonomy, $args )
get_the_terms( $post_id, $taxonomy )

いずれも、 $post_id には、投稿ID(整数)をいれます。

$ taxonomy には、タクソノミー名を入れます。
カテゴリーのタームを取得するには、’category’ 、
タグのタームを取得するには ‘post_tag’ 、 
カスタムタクソノミーは、タクソノミースラッグをいれます。

$post_id、$taxonomyとも省略できません。

wp_get_post_terms には$argsにオプションを設定できます。 オプションについては、wp_get_object_termsと同じです。

https://wpdocs.osdn.jp/関数リファレンス/wp_get_object_terms

たとえば、投稿ページで、それに属する’genre’というカスタムタクソノミーのターム覧を、アーカイブページへのリンク付きで表示したければ、get_term_linkでリンクURLを取得できるので、次のようにすればできます。

ID ,'genre' );
	$termtag = "
"; foreach ($genre_tarms as $term){ $linkurl = get_term_link($term->term_id , 'genre'); $termtag .= "
{$term->name}
"; } $termtag .= "
"; echo $termtag; ?>

となります。

ただし、get_the_term_list を使えば簡単にできるので、例ってことで。
get_the_term_list をつかえば、

	ID ,'genre', '
', '
', '
'); ?>

のたった一行ですんじゃいます。

べんりー!

nakaike