WP_Term_Query クラスの使い方|説明・引数・注意点

説明

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()

関連項目

get_terms()、WP_Query

公式リファレンス:WP_Term_Query | WordPress Developer Resources

コメント

タイトルとURLをコピーしました