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

説明

wp_set_object_terms() は、オブジェクト(投稿など)にタームを紐付ける関数です。

基本構文

wp_set_object_terms( int $object_id, string|int|array $terms, string $taxonomy, bool $append = false ): array|WP_Error

引数

  • $object_id:投稿などのID
  • $terms:ターム
  • $taxonomy:タクソノミー名
  • $append:追加するか置き換えるか

戻り値

ターム関連IDの配列。

使い方(サンプル)

wp_set_object_terms( 123, 'rock', 'genre', true );

注意点

  • 存在しないタームは新規作成されます(権限に注意)。
  • 階層型ではIDを渡さないと、同名の新規タームができることがあります。

実務での使いどころ

  • 投稿に、タームを設定する(置き換え、または追加)、基本の関数。
  • 投稿以外の、タームを持つオブジェクトにも使うとき。

よくあるミスと対処

  • $append を指定せず、既存のタームがすべて置き換わる。
  • タームのIDを、文字列('5')で渡している。数値の文字列は、ターム名として扱われ、新しいタームが作られる。IDは、整数で渡す。
  • 階層ありのタクソノミーに、ターム名を渡している。

NG例

wp_set_object_terms( $post_id, '5', 'category' ); // '5' という名前のタームが作られる

OK例

wp_set_object_terms( $post_id, array( 5 ), 'category', true ); // IDを整数で渡し、追加する

使い分け早見表

関数 役割
wp_set_object_terms() タームを設定する(置き換え、または追加)
wp_remove_object_terms() タームを外す
wp_set_post_terms() 投稿向けの、設定の関数

関連項目

wp_set_post_terms()、wp_remove_object_terms()

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

コメント

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