WordPressでターム一覧を取得するにはget_terms()関数を使用します。
よく、get_terms()とget_the_terms()がこんがらがってしまいますが、get_terms()はタクソノミーのターム一覧を取得出来て、get_the_terms()は記事の属するタームを取得するものになります。
今回はタクソノミーのターム一覧を取得するget_terms()関数について解説していきます。
※本記事ではWordpress6.8.2使用しています。ご利用の環境により仕様が異なる場合があります。
get_terms()関数について
冒頭でも記載しましたが、get_terms()関数は指定したタクソノミーのターム一覧を取得出来る関数となります。
get_the_terms()は記事が属するタームを取得するものになりますので間違えないようにしてください。
get_terms()関数の使い方
get_terms()関数の使い方は以下のようになります。
<?php $terms = get_terms($taxonomy, $args); ?>
「$taxonomy」にはタームを取得したいタクソノミースラッグを、「$args」には戻り値の条件などを指定出来ます。「$terms」は配列で取得したターム一覧の情報を格納している変数となります。
タクソノミーの指定
以下は、get_terms()関数へのタクソノミーの指定例となります。
<?php
// タクソノミーが1つの場合
$terms = get_terms('category');
// タクソノミーが複数の場合1
$terms = get_terms(array('category1','category2'));
// タクソノミーが複数の場合2
$taxonomies = array('category1','category2')
$terms = get_terms($taxonomies);
?>
上記のように取得したいタクソノミーのスラッグを指定します。取得したタクソノミーが複数ある場合はarray()配列を使って複数指定します。
また、後述する戻り値の条件指定(「$args」)が無い場合は省略しても大丈夫です。
戻り値の条件指定
戻り値の条件と指定出来る内容はたくさんあるのですが、よく使用されるのが「hide_empty」かと思います。
get_terms()関数は、記事の無いタームは表示されないのがデフォルトになっているため、タームを全て取得したい場合は戻り値の条件指定として「hide_empty」の値に「0」または「false」を指定する必要があります。
<?php
$args = array(
'hide_empty' => false,
);
$terms = get_terms('category', $args);
?>
上記の「hide_empty」の他にも並び替えや除外なども出来ますので、必要の際は「WordPress 私的マニュアル」を参考にしてみてください。
get_terms()関数の戻り値
get_terms()関数の戻り値は、以下の内容がタームの数だけ配列で返ってきます。
プロパティ名 | 内容 |
---|---|
term_id | int型 タームのID |
name | string型 タームの名前 |
slug | string型 タームのスラッグ |
term_group | int型 タームのグループID |
term_taxonomy_id | int型 タクソノミーのID |
taxonomy | string型 タクソノミーのスラッグ |
description | string型 タクソノミーの説明 |
parent | int型 親タームのID、親タームが無い場合は「0」 |
count | int型 タームに属する記事数 |
filter | string型 WP_termの内部プロパティでタームオブジェクトの値をどのようにフィルタリングするかを示す(「raw」は生データ(加工なし)) |
この戻り値を出力するには以下のような形で記述します。
<?php
$terms = get_terms('category');
foreach($terms as $term){
echo '<a href="'.get_term_link($term->slug, 'category').'">'.$term->name.'</a>';
}
?>
上記では、戻り値からタームスラッグとターム名を取得しています。
get_terms()関数で取得した内容は配列となっていますので、上記のようにforeachなどで配列ごとにループさせて出力する必要があります。
get_term_link()関数はタームのスラッグからタームのURLを取得する関数となります。
このように必要な戻り値を取得し出力する事が可能です。
さいごに
いかがでしたでしょうか。
今回は、ターム一覧を取得する関数get_terms()の使い方を解説しました。
WordPressではタームの一覧を取得し表示するといった事がよくありますので、覚えておいた方がいい内容となります。慣れないと分かり難いかとは思いますが、まずは使ってみてください。