制作ブログ Web制作アプリケーションWordPressカスタム投稿でタクソノミーの値(ターム)を変更する方法 → wp_set_object_terms

カスタム投稿でタクソノミーの値(ターム)を変更する方法 → wp_set_object_terms

カテゴリーやタグ(カスタム投稿でいうとタクソノミー)の値を管理画面外から更新する場合の備忘録。

wp_set_object_terms($object_id, $terms, $taxonomy, $append);

$object_id 整数
投稿 ID など、関連づけるオブジェクト。
$terms 配列|整数|文字列
タームのスラッグまたは ID(例えばカテゴリーやタグの ID)。
$taxonomy 配列|文字列
投稿のカテゴリーは(’category’)、投稿のタグは(’post_tag’)、その他はタクソノミー名を指定する。
$append 真偽値: 初期値 false
true タームを追加する
false 既存のタームを置き換える(上書き)

戻り値 mixed
戻り値は複数パターンある。詳細はWordPress Codexのドキュメントで。
関数リファレンス/wp set object terms – WordPress Codex 日本語版

たとえば、記事IDが「10」のタクソノミー「genres」に「action」と「sf」を選択した状態にするときは、このように書く。

wp_set_object_terms(10, array('action', 'sf'), 'genres');

上書きではなく、追加したい場合は第四引数の値をtrueにする。
たとえば、タクソノミー「genres」に「action」と「sf」が設定されている記事ID「10」に「drama」を追加したいときは、このように書く。

wp_set_object_terms(10, 'drama', 'genres', true);