投稿記事に属するタームを表示する色々な方法
【the_terms】で表示する
リンク付きのリストを表示する
the_termsはデフォルトでリンクが付きます。
あまり出力の自由度が無い。
<?php the_terms( $post->ID, 'カスタム分類名'); ?>
HTMLでの表示結果
<a href="http://example.com/slug/term1">ターム1</a>, <a href="http://example.com/slug/term2">ターム1</a>
【get_the_terms】で表示する
細かな指定をして出力したい場合はthe_termsよりget_the_termsが便利です。
リンク無しのリストを表示する
<?php $terms = get_the_terms($post->ID, 'カスタム分類名'); // 複数のカスタム分類を指定する場合は配列を使用する // $terms = get_the_terms($post->ID, array('カスタム分類名1','カスタム分類名2')); if ( $terms ) { echo '<ul>'; foreach ( $terms as $term ) { echo '<li>'.$term->name.'</li>'; } echo '</ul>'; } ?>
HTMLでの表示結果
- ターム1
- ターム2
- ターム3
リンク付きのリストを表示する
URL(タームアーカイブページへのリンク)を取得するにはget_term_linkと組み合わせて記述します。
<?php $terms = get_the_terms($post->ID, 'カスタム分類名'); // 複数のカスタム分類を指定する場合は配列を使用する // $terms = get_the_terms($post->ID, array('カスタム分類名1','カスタム分類名2')); if ( $terms ) { echo '<ul>'; foreach ( $terms as $term ) { $term_link = get_term_link( $term ); echo '<li><a href="'.esc_url( $term_link ).'">'.$term->name.'</a></li>'; } echo '</ul>'; } ?>
HTMLでの表示結果
<ul> <li><a href="http://example.com/slug/term1">ターム1</a></li> <li><a href="http://example.com/slug/term2">ターム2</a></li> </ul>
【オマケ】タームを最初の1つだけ表示
複数のタームに属している場合でも、最初の1つだけしか表示させないケース、例えばパンくずに使用する場合等は複数より1つだけの方が都合が良かったりするでしょう。
その場合は、配列の一番目[0]のタームを取り出します。
リンク無し
<?php
$terms = get_the_terms($post->ID, 'カスタム分類名');
if ( $terms ) {
echo $terms[0]->name;
}
?>
HTMLでの表示結果
ターム1
リンク付き
<?php
$terms = get_the_terms($post->ID, 'カスタム分類名');
if ( $terms ) {
echo '<a href="'.esc_url(get_term_link( $terms[0]->term_id )).'">'.$terms[0]->name.'</a>';
}
?>
HTMLでの表示結果
ターム1
【get_the_terms】の主なオブジェクトメンバー
term_id | ID |
---|---|
name | 分類名 |
slug | スラッグ |
description | 説明 |
parent | 親分類の ID |
count | その分類に属するカスタム投稿数 |
本サイトの内容に誤りや不正確な記述がある場合やサンプルに基づくいかなる結果も一切の責任を負いかねますので、あらかじめご了承ください。