
目次
get_the_term_list()の用途
get_the_term_list()
は、指定した投稿に紐づいているターム(カテゴリー・タグ・カスタムタクソノミー)を、リンク付きの文字列として取得する関数です。
get_the_term_list()の構文
get_the_term_list( int $post_id, string $taxonomy, string $before = '', string $sep = '', string $after = '' )
get_the_term_list()のパラメータ
$post_id
: 投稿ID(ループ内ならget_the_ID()
がよく使われる)$taxonomy
: タクソノミー名(例category
,post_tag
, カスタムタクソノミー名)$before
: 出力の先頭に付ける文字列$sep
: 各タームを区切る文字列$after
: 出力の末尾に付ける文字列
get_the_term_list()の戻り値
- タームリンクを含む文字列
- タームが紐づいていなければ
false
get_the_term_list()の基本例
投稿のカテゴリーをカンマ区切りで取得して表示する
echo get_the_term_list( get_the_ID(), 'category', '', ', ', '' );
出力例:<a href="...">ニュース</a>, <a href="...">イベント</a>
区切りや装飾を付ける例
echo get_the_term_list( get_the_ID(), 'category', '<span class="cat-links">', ' | ', '</span>' );
出力例:<span class="cat-links"><a href="...">ニュース</a> | <a href="...">イベント</a></span>
カスタムタクソノミーの例
echo get_the_term_list( get_the_ID(), 'genre', '<p>ジャンル: ', ', ', '</p>' );
出力例:<p>ジャンル: <a href="...">ミステリー</a>, <a href="...">ファンタジー</a></p>
タームがない場合の処理
タームが紐づいていないと false
を返すため、以下のように条件分岐をすると安全
$terms = get_the_term_list( get_the_ID(), 'category' );
if ( $terms ) {
echo $terms;
}
似た関数との違い
get_the_terms()
: タームのオブジェクト配列を返す(ターム名やスラッグをループで利用可能)the_terms()
:get_the_term_list()
と同様に出力するが、こちらは直接エコーするget_the_category_list()
: カテゴリー限定get_the_tag_list()
: タグ限定
使い分けのポイント
- HTMLリンク付きの文字列をまとめて取得して表示したい →
get_the_term_list()
- ターム情報を配列で処理したい →
get_the_terms()
- 単にカテゴリー・タグを表示する →
get_the_category_list()
やget_the_tag_list()
必要に応じて具体的な例を追加しますので教えてください。