説明
wp_remove_object_terms() は、オブジェクトからタームの紐付けを外す関数です。
基本構文
wp_remove_object_terms( int $object_id, string|int|array $terms, string $taxonomy ): bool|WP_Error
引数
$object_id:投稿などのID$terms:外すターム$taxonomy:タクソノミー名
戻り値
成功したら true。
使い方(サンプル)
wp_remove_object_terms( 123, 'rock', 'genre' );
注意点
- タームそのものは削除されず、紐付けのみ解除されます。
実務での使いどころ
- 投稿から、特定のタームだけを、外すとき。
- ほかのタームを残したまま、一部のタームだけを、取り除くとき。
よくあるミスと対処
- タームそのものを削除するつもりで使っている。この関数は、投稿とタームの関連を外すだけ。タームの削除は
wp_delete_term()。 - タームのIDを、文字列で渡している。IDは、整数で渡す。
NG例
wp_remove_object_terms( $post_id, 5, 'category' ); // 関連を外すだけで、タームは削除されない
OK例
wp_delete_term( 5, 'category' ); // タームそのものを削除する
使い分け早見表
| やりたいこと | 使うもの |
|---|---|
| 投稿から、タームを外す | wp_remove_object_terms() |
| タームそのものを削除 | wp_delete_term() |
| タームを設定する | wp_set_object_terms() |
関連項目
wp_set_object_terms()、wp_delete_term()
公式リファレンス:wp_remove_object_terms() | Function | WordPress Developer Resources

コメント