get_term_link()
は、カテゴリやタグ、カスタムタクソノミーの個別ページへのリンクを取得するテンプレートタグです。
機能の説明
get_term_link()
は、特定のタクソノミー(例:カテゴリーやタグなど)の個別アーカイブページのURLを取得します。この関数は、投稿に関連するカテゴリーやタグのリンクを生成するのに便利です。
シンプルなコード例
<?php
$term = get_term_by('slug', 'news', 'category');
echo '<a href="' . get_term_link($term) . '">ニュース一覧</a>';
?>
この例では、category
タクソノミーのnews
というスラッグを持つカテゴリを取得し、そのアーカイブページへのリンクを表示します。
使い方の解説
get_term_link()
は、主にカテゴリー、タグ、またはカスタムタクソノミーのリンクを取得するために使用されます。カテゴリリストやタグクラウドなど、複数のタクソノミーリンクを出力する際に便利です。
引数
$term
(必須)-
取得したいタクソノミー項目の情報を表す
WP_Term
オブジェクト、ID、スラッグ、または名前です。 $taxonomy
(必須)-
指定したタームが属するタクソノミー名を文字列で指定します。例:
category
、post_tag
。 $deprecated
(任意)-
廃止予定の引数で、使用する必要はありません。
戻り値
- URL文字列
-
指定したタームのアーカイブページへのURLを返します。
例外: 無効なタームの場合は
WP_Error
オブジェクトを返します。
オプション
get_term_link()
に特定のオプションはありませんが、使うタクソノミーによって取得できる情報は変わります。
使用例
<?php
$tag = get_term_by('name', 'WordPress', 'post_tag');
if ($tag && !is_wp_error($tag)) {
echo '<a href="' . esc_url(get_term_link($tag)) . '">タグ: WordPress</a>';
}
?>
このコードは、post_tag
タクソノミーでWordPress
という名前のタグを取得し、そのリンクを安全に出力しています。esc_url()
を使うことで、リンクの安全性を確保しています。
一緒に使うことが多い関連タグ
get_the_category()
get_the_category()
は、投稿に関連付けられたカテゴリーの情報を取得します。
<?php
$categories = get_the_category();
if ($categories) {
foreach ($categories as $category) {
echo '<a href="' . esc_url(get_term_link($category)) . '">' . esc_html($category->name) . '</a><br>';
}
}
?>
このコードは、投稿に関連するすべてのカテゴリのリンクを表示します。get_term_link()
を使ってカテゴリページへのリンクを取得しています。
追加情報を取得したい場合
get_term_by() で取得できるタクソノミー情報
<?php
$term = get_term_by('slug', 'news', 'category');
if ($term) {
echo 'Name: ' . $term->name . '<br>';
echo 'Slug: ' . $term->slug . '<br>';
echo 'Description: ' . $term->description . '<br>';
}
?>
get_term_by()
を使用して、タクソノミー項目の詳細情報を取得しています。
出力できる情報
- name: タームの名前
- slug: タームのスラッグ(URLフレンドリーな名前)
- description: タームの説明
- term_id: タームのID
想定されるトラブル
存在しないタームへのリンクが取得できない
get_term_link()
が無効なタームを指定している場合、WP_Error
を返します。
解決策
is_wp_error()
を使ってエラーチェックを行いましょう。
カスタムタクソノミーのリンクが正しく取得できない
タームが正しく登録されていないか、タクソノミー名が間違っている可能性があります。
解決策
register_taxonomy()
でタクソノミーを正しく登録しているか確認し、ターム名やスラッグが正しいかチェックしましょう。
Q&A
まとめ
get_term_link()
は、タクソノミーのタームページへのリンクを取得するための便利なテンプレートタグです。投稿のカテゴリやタグだけでなく、カスタムタクソノミーにも対応しており、動的にリンクを生成する場合に欠かせません。