get_term_by() の使い方|説明・引数・注意点

説明

get_term_by() は、名前・スラッグ・IDなどからタームを検索する関数です。

基本構文

get_term_by( string $field, string|int $value, string $taxonomy = '', string $output = OBJECT, string $filter = 'raw' ): WP_Term|array|false

引数

  • $field:slug / name / id など
  • $value:検索する値
  • $taxonomy:タクソノミー名
  • $output:返却形式

戻り値

WP_Term。見つからなければ false。

使い方(サンプル)

$term = get_term_by( 'slug', 'news', 'category' );
if ( $term ) {
	var_dump( $term->term_id );
}

注意点

  • 見つからなければ false が返ります。

実務での使いどころ

  • スラッグや名前から、タームを取得するとき。
  • ターム名が分かっているときに、そのIDを調べるとき。

よくあるミスと対処

  • $taxonomy を省略している。term_taxonomy_id 以外では、タクソノミーの指定が必要。
  • 存在しないときは false が返る。確認せずに使う。
  • フィールド名を間違えている(slug・name・id・term_taxonomy_id)。

NG例

$term = get_term_by( 'slug', 'important' ); // タクソノミーがない

OK例

$term = get_term_by( 'slug', 'important', 'news_cat' );
if ( $term ) {
	echo (int) $term->term_id;
}

使い分け早見表

やりたいこと 使うもの
スラッグ・名前から取得 get_term_by()
IDから取得 get_term()
条件に合うターム一覧 get_terms()

関連項目

get_term()、term_exists()

公式リファレンス:get_term_by() | Function | WordPress Developer Resources

コメント

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