MENU

get_the_term_list()

get_the_term_list() は、特定の投稿に関連するタクソノミーの用語(terms)をリンク付きのリスト形式で取得するためのテンプレートタグです。カテゴリー、タグ、またはカスタムタクソノミーのリンクリストを表示するのに使用されます。

目次

機能の説明

get_the_term_list() は、特定の投稿に紐づくタクソノミー用語を、HTMLで整形されたリスト形式で取得します。
この関数を使うことで、カテゴリーやタグ、またはカスタムタクソノミーのリンクを簡単に表示できます。

シンプルなコード例

<?php echo get_the_term_list( get_the_ID(), 'category', '', ', ', '' ); ?>

このコードは、現在の投稿に関連するカテゴリーのリンクリストをカンマ(, )区切りで表示します。

使い方の解説

get_the_term_list() は以下のような構成で使用します。

get_the_term_list( $post_id, $taxonomy, $before, $sep, $after );
  • $post_id: 投稿ID(現在の投稿の場合は get_the_ID() を使用)
  • $taxonomy: タクソノミー名(例:categorypost_tag
  • $before: 用語リストの前に表示するHTMLや文字列
  • $sep: 用語間の区切り文字
  • $after: 用語リストの後に表示するHTMLや文字列

使用例

<?php
echo get_the_term_list( get_the_ID(), 'post_tag', '<p>タグ: ', ', ', '</p>' );
?>
  • 現在の投稿に関連するタグを <p> タグ内でカンマ区切りにして表示します。
  • post_tag は、WordPressの「タグ」タクソノミーです。

一緒に使うことが多い関連タグ

get_the_category()

get_the_category() は、現在の投稿に関連するカテゴリー情報を配列形式で取得するためのテンプレートタグです。

<?php
$categories = get_the_category();
foreach ( $categories as $category ) {
    echo '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '">';
    echo esc_html( $category->name );
    echo '</a> ';
}
?>
  • get_the_category() でカテゴリー情報を取得し、リンク付きで表示します。
  • get_category_link() で各カテゴリーへのURLを生成します。

get_the_terms()

get_the_terms() は、投稿に紐づくタクソノミー用語を配列形式で取得する関数です。

<?php
$terms = get_the_terms( get_the_ID(), 'category' );
if ( !empty( $terms ) ) {
    foreach ( $terms as $term ) {
        echo '<a href="' . esc_url( get_term_link( $term ) ) . '">';
        echo esc_html( $term->name );
        echo '</a> ';
    }
}
?>
  • get_the_terms() はタクソノミー用語の情報を取得し、リンク付きで表示します。
  • get_term_link() は、用語のアーカイブページへのURLを取得します。

追加情報を取得したい場合

get_the_terms()で取得できる情報

用語のスラッグや説明を取得したい場合は、get_the_terms() を使用して必要な情報を個別に取得できます。

<?php
$terms = get_the_terms( get_the_ID(), 'category' );
if ( !empty( $terms ) ) {
    foreach ( $terms as $term ) {
        echo 'カテゴリー名: ' . esc_html( $term->name ) . '<br>';
        echo 'スラッグ: ' . esc_html( $term->slug ) . '<br>';
        echo '説明: ' . esc_html( $term->description ) . '<br>';
    }
}
?>

出力できる情報

  • name:用語の名前
  • slug:用語のスラッグ(URLフレンドリーな名前)
  • description:用語の説明
  • count:投稿が何件その用語に紐づいているか

使用する事で想定されるトラブ

タクソノミーが正しく取得されない

指定したタクソノミーが存在しない、またはスペルミスがある可能性があります。

解決方法

タクソノミー名を確認し、正確に指定してください。

用語が紐づいていない場合、空白が表示される

投稿にタクソノミー用語が紐づいていない可能性があります。

解決方法

if ( !empty() ) チェックを使って、空の場合の処理を追加します。

<?php
$terms = get_the_terms( get_the_ID(), 'category' );
if ( !empty( $terms ) ) {
    echo get_the_term_list( get_the_ID(), 'category', 'カテゴリー: ', ', ', '' );
} else {
    echo 'カテゴリーはありません。';
}
?>

Q&A

カスタムタクソノミーの用語も表示できますか?

はい、get_the_term_list() でカスタムタクソノミーの用語も表示できます。

<?php echo get_the_term_list( get_the_ID(), 'custom_taxonomy', '', ', ', '' ); ?>

用語が一つもない場合、どうすればエラーメッセージを表示できますか?

if ( !empty() ) チェックを使って、用語がない場合の処理を行います。

用語をリンクではなくテキストで表示する方法はありますか?

get_the_terms() を使って、リンクを生成せずに名前だけを表示します。

<?php
$terms = get_the_terms( get_the_ID(), 'post_tag' );
if ( !empty( $terms ) ) {
    foreach ( $terms as $term ) {
        echo esc_html( $term->name ) . ' ';
    }
}
?>

まとめ

get_the_term_list() は、特定の投稿に紐づくタクソノミー用語をリンク付きで簡単に取得できる便利なテンプレートタグです。

get_the_terms()get_the_category() などと組み合わせることで、より柔軟な表示が可能になります。また、空の場合のチェックやエスケープ処理を行うことで、安全かつ見やすい出力を実現できます。

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

コメント

コメントする

This site uses Akismet to reduce spam. Learn how your comment data is processed.

目次