投稿に属するタクソノミのタームを取得するには、どうやら、二種類あるようです。
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を取得できるので、次のようにすればできます。
1 2 3 4 5 6 7 8 9 10 |
<?php $genre_tarms = get_the_terms( $post->ID ,'genre' ); $termtag = "<dl>"; foreach ($genre_tarms as $term){ $linkurl = get_term_link($term->term_id , 'genre'); $termtag .= "<dd><a href="$linkurl" > {$term->name}</a></dd>"; } $termtag .= "</dl>"; echo $termtag; ?> |
となります。
ただし、get_the_term_list を使えば簡単にできるので、例ってことで。
get_the_term_list をつかえば、
1 2 3 |
<?php echo get_the_term_list($post->ID ,'genre', '<dd>', '</dd><dd>', '</dd>'); ?> |
のたった一行ですんじゃいます。
べんりー!