get_terms()
は、特定のタクソノミーの用語(カテゴリー、タグ、カスタムタクソノミー)を取得するためのWordPress関数です。複数条件に基づく絞り込みも可能で、一覧表示などに使用されます。
機能の説明
get_terms()
は、指定したタクソノミー(分類)に基づいて、カテゴリー、タグ、またはカスタムタクソノミーの用語を取得します。取得条件を指定できるため、投稿数で絞り込んだり、特定の用語だけを取得するなどの柔軟な処理が可能です。
シンプルなコード例
<?php
$terms = get_terms('category');
if (!empty($terms)) {
foreach ($terms as $term) {
echo $term->name . '<br>';
}
}
?>
このコードは、カテゴリー(category
タクソノミー)の全用語を取得し、各用語の名称を表示します。get_terms()
で取得した用語データを、$term->name
で出力しています。
使い方の解説
get_terms()
はタクソノミーの用語を取得する際に非常に便利です。例えば、特定のカテゴリーやタグを一覧表示したい場合や、カスタムタクソノミーの一覧を表示したいときに使用します。取得条件を指定することで、例えば投稿数が多い順にソートする、または親用語のみ取得する、といった細かい設定も可能です。
引数
'taxonomy'
-
- 説明: 取得するタクソノミー名を指定(例:
'category'
,'post_tag'
) - 型: 文字列または配列
- 説明: 取得するタクソノミー名を指定(例:
'orderby'
-
- 説明: 用語の並び順の指定(例:
'name'
,'count'
,'slug'
) - 型: 文字列
- 説明: 用語の並び順の指定(例:
'order'
-
- 説明: 昇順または降順を指定(
'ASC'
または'DESC'
) - 型: 文字列
- 説明: 昇順または降順を指定(
'hide_empty'
-
- 説明: 投稿がない用語を除外するかどうか(
true
で非表示、false
で表示) - 型: 真偽値
- 説明: 投稿がない用語を除外するかどうか(
'number'
-
- 説明: 取得する用語の最大数を指定
- 型: 整数
'parent'
-
- 説明: 特定の親IDに属する用語を取得する
- 型: 整数
'meta_query'
-
- 説明: メタデータ条件を指定するための配列
- 型: 配列
戻り値
WP_Term[]
またはWP_Error
-
用語が存在する場合は
WP_Term
オブジェクトの配列を返し、エラーが発生した場合はWP_Error
オブジェクトを返します。
オプション
'pad_counts'
-
- 説明: 階層構造のタクソノミーにおいて、子用語の投稿数を親用語に加算するかどうか
- 型: 真偽値
'fields'
-
- 説明: 返すデータのフィールドを指定(例:
'all'
,'ids'
,'names'
) - 型: 文字列
- 説明: 返すデータのフィールドを指定(例:
'child_of'
-
- 説明: 特定の親用語IDの子用語を取得する
- 型: 整数
使用例
<?php
$args = array(
'taxonomy' => 'post_tag',
'orderby' => 'count',
'order' => 'DESC',
'hide_empty' => true,
'number' => 5,
);
$tags = get_terms($args);
if (!is_wp_error($tags) && !empty($tags)) {
foreach ($tags as $tag) {
echo $tag->name . ' (' . $tag->count . ' posts)<br>';
}
}
?>
このコードは、投稿数が多い順に上位5つのタグ(post_tag
)を取得し、タグ名とその投稿数を表示する例です。hide_empty
をtrue
にすることで、投稿が1つもないタグは表示しません。
一緒に使うことが多い関連タグ
get_the_terms()
get_the_terms()
は、指定した投稿に関連するタクソノミーの用語を取得します。個別投稿のタクソノミー情報を表示したい場合に使用します。
使用例
<?php
$post_tags = get_the_terms(get_the_ID(), 'post_tag');
if ($post_tags && !is_wp_error($post_tags)) {
foreach ($post_tags as $tag) {
echo $tag->name . '<br>';
}
}
?>
このコードは、現在の投稿に紐づくタグ(post_tag
)を取得し、各タグ名を表示します。get_the_terms()
は、個別投稿に関連する用語を取得するために使用します。
wp_list_categories()
wp_list_categories()
は、カテゴリーリストを表示するためのテンプレートタグです。カテゴリー一覧を表示したい場合に使用されます。
<?php
wp_list_categories(array(
'orderby' => 'name',
'show_count' => true,
'title_li' => '',
));
?>
このコードは、カテゴリー一覧をアルファベット順で表示する例です。show_count
オプションで投稿数を表示し、title_li
を空にすることで、リストにタイトルを表示しません。
追加情報を取得したい場合
get_terms()
で取得した用語データは、各種テンプレートタグや関数と組み合わせることでさらに活用できます。
get_term_meta()で取得できるメタ情報
get_term_meta()
は、タクソノミーの用語に付随するメタデータを取得します。
<?php
$terms = get_terms(array('taxonomy' => 'genre', 'number' => 3));
foreach ($terms as $term) {
$color = get_term_meta($term->term_id, 'color', true);
echo $term->name . ' - カラー: ' . $color . '<br>';
}
?>
このコードは、genre
タクソノミーから上位3つの用語を取得し、それぞれのcolor
メタデータを取得して表示します。
出力できる情報
- meta_key: 用語に関連するメタデータのキー名
- meta_value: 用語に関連するメタデータの値
想定されるトラブル
投稿数がゼロの用語が表示されない
hide_empty
引数がtrue
に設定されている場合、投稿数がゼロの用語が非表示になります。
解決策
hide_empty
をfalse
に設定することで、投稿数がゼロでも用語を表示できます。
メタデータが取得できない
用語にメタデータが未設定の場合や、meta_query
の条件が正しくない場合。
解決策
get_term_meta()
を使用して、対象用語にメタデータが設定されているか確認します。
Q&A
まとめ
get_terms()
は、指定したタクソノミーの用語一覧を取得するための便利な関数です。
カテゴリーやタグ、カスタムタクソノミーの用語を取得し、様々な条件で絞り込むことができます。get_the_terms()
やget_term_meta()
などの関連関数と組み合わせることで、さらに柔軟な情報取得が可能です。
カスタマイズ例
-
タームのメタデータで同じ値を一括登録する
まとめ WordPressでタームのメタデータを一括で登録する方法について紹介しました。このカスタマイズにより、メタデータの登録や更新が効率的に行えます。大量のタームや特定のデータが必要な場合、非常に役立ちます。 -
タームのメタデータを取得する
WordPressのカスタムタクソノミーやカテゴリーに登録されたタームには、メタデータを追加することが可能です。本記事では、タームのメタデータを取得し、簡単に表示するためのカスタマイズ方法を紹介します。 タームのメタデータを取得する WordPressでは...