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
: タクソノミー名(例:category
やpost_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()
は、特定の投稿に紐づくタクソノミー用語をリンク付きで簡単に取得できる便利なテンプレートタグです。
get_the_terms()
や get_the_category()
などと組み合わせることで、より柔軟な表示が可能になります。また、空の場合のチェックやエスケープ処理を行うことで、安全かつ見やすい出力を実現できます。
コメント