get_the_term_list()

get_the_term_list()
目次

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()

必要に応じて具体的な例を追加しますので教えてください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

初めてホームページを作成したのは1996年。
2000年よりフリーランスで主に中小企業、学校、各種公的団体、個人事業主のWordPressを活用したホームページ制作を行っています。WordPressテーマはそれぞれのクライアントに合わせて作成しています。
WordPressを活用したサイト運営のための情報発信をしていきます。

目次