説明
WP_Term_Query は、条件を指定してタームを検索するクラスです。get_terms() が内部で使っています。
基本構文
new WP_Term_Query( array|string $query = array() )
引数
$query:taxonomy、hide_empty、orderby、numberなど
戻り値
WP_Term_Query オブジェクト。get_terms() メソッドで取得します。
使い方(サンプル)
$tq = new WP_Term_Query( array( 'taxonomy' => 'category', 'hide_empty' => false ) );
$terms = $tq->get_terms();
注意点
- 通常は
get_terms()で十分です。
実務での使いどころ
- タームを、条件を細かく指定して、取得するとき(通常は、
get_terms()で足りる)。
よくあるミスと対処
hide_emptyの既定はtrue。投稿のないタームは、取得されない。taxonomyに、登録されていない名前を指定している。- 通常の取得なら、
get_terms()で足りるのに、直接クラスを使っている。
NG例
$q = new WP_Term_Query( array( 'taxonomy' => 'news_cat' ) );
$terms = $q->get_terms(); // 投稿のないタームは、含まれない
OK例
$q = new WP_Term_Query( array(
'taxonomy' => 'news_cat',
'hide_empty' => false,
) );
$terms = $q->get_terms();
使い分け早見表
| やりたいこと | 使うもの |
|---|---|
| ターム一覧(通常) | get_terms() |
| クエリのオブジェクトとして扱う | WP_Term_Query |
| 1つのタームを取得 | get_term() |

コメント