• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

関数リファレンス/wp set post terms

提供: WordPress Codex 日本語版
移動先: 案内検索

投稿にタームをセットします。

この機能は、ネイティブのポストタイプでのみ動作します。カスタム投稿タイプ内のタクソノミーでは、wp_set_object_terms()を使ってください。
関数の内部で wp_set_object_terms() を使用します。

使用法

<?php wp_set_post_terms( $post_id, $terms, $taxonomy, $append ) ?>

パラメータ

$post_id
整数) (必須) 投稿 ID
初期値: 0
$terms
文字列|配列) (オプション) タームのリスト。配列またはコンマ区切りの文字列。カテゴリーのように階層のあるタームを入れるには、ID を使う。タグのように階層のないタームを追加するには、名前を使う。
初期値: array
$taxonomy
文字列) (オプション) タームを関連づけるコンテキストであるタクソノミー。例: 'category', 'post_tag', 'taxonomy slug'
初期値: post_tag
$append
真偽値) (オプション) true ならタームが投稿に追加されます。false なら既存のタームを置き換えます。
初期値: false

戻り値

(配列|真偽値|WP_Error|文字列) 
  • (配列) 成功した場合、変更されたタームの配列。
  • (真偽値) $post_id が整数でなかった場合、false (if ( ! (int) $post_id )) を返す。
  • (WP_Error) 無効なタクソノミーの場合、WordPress Error オブジェクト('invalid_taxonomy')。
  • (文字列) $terms パラメータに指定されたタームの何れかが誤って名付けられていた場合、最初の無効なターム(ただし、無効なターム ID は受け入れられ、挿入されます)。

フック

情報募集中 クリエイティブな例を求めています。外部サイトへのリンクでも構いません。 該当部分を編集するか、このページのノートまたはフォーラム等で教えてください。


参考

階層のあるターム(カテゴリーなど)の場合、ターム名ではなく ID を指定してください。 同じ名前で親が違うタームとの混同を避けるためです。

次のようにしてターム ID を取得できます:

$term_id = term_exists( $term, $taxonomy, $parent );

さらに、パラメータを参照渡しする必要があるかもしれません:

wp_set_post_terms( $post_id, $term, &$taxonomy );

階層のないターム(タグなど)の場合、タームの名前または ID を指定します。 ID を指定するときは一つだけ注意してください: 必ず整数として、そして必ず配列に入れなければなりません。 配列ではない値は(自動的に)文字列に変換され、(ID ではなく)ターム名だと解釈されるためです。

$tag = '5'; // 誤り。「名前」が '5' であるタグが付く。
$tag = 5; // 誤り。これも名前が '5' であるタグが付く。
$tag = array( '5' ); // 誤り。これでも ID ではなくタームの名前だと解釈される。

$tag = array( 5 ); // 正しい。これで ID が 5 のタグが付く。
wp_set_post_terms( $post_id, $tag, $taxonomy );
  • 本家の英語版Codexには、以下のように「この関数は標準の投稿タイプに対してのみ使えます。カスタム投稿タイプにタクソノミー(ターム)を付けるには wp_set_object_terms() を使用してください。」と書かれていますが、カスタム投稿タイプのタクソノミーに対しても使用できるようです。

This function will only work on the native post type. For a taxonomy on a custom post type use wp_set_object_terms().

改訂履歴

  • 2.8.0 にて導入されました。

ソースファイル

wp_set_post_terms()wp-includes/post.php にあります。

タームタグ: is_term(), term_exists(), get_objects_in_term(), get_term(), get_term_by(), get_term_children(), get_term_link(), get_terms(), get_the_terms(), get_the_term_list(), has_term(), sanitize_term(), the_terms(), get_object_taxonomies() is_object_in_taxonomy() the_taxonomies() wp_get_object_terms(), wp_set_object_terms(), wp_get_post_terms(), wp_set_post_terms(), wp_delete_object_term_relationships()


関数リファレンステンプレートタグ目次もご覧ください。


最新英語版: WordPress Codex » Function Reference/wp_set_post_terms最新版との差分