概要
wp_set_post_terms
関数は、指定された投稿(ポスト)に対してターム(カテゴリやタグなど)を設定するために使用されます。この関数は、投稿情報にタームを設定することで、コンテンツの整理や分類を助け、サイト全体のナビゲーションや検索機能を向上させることができます。具体的には、以下のような機能を実装する際によく使われます:
- 投稿に特定のカテゴリを設定する
- 投稿にタグを追加または更新する
- 複数のタームを同時に設定する
- 既存のタームを投稿から削除する
- 投稿を特定のカスタムタクソノミーに関連付ける
- 複数の投稿に同じタームを一括設定する
- タームのスラッグを使用して投稿をフィルタリングする
- タームのIDを数値で取得してプログラム的に設定する
構文
wp_set_post_terms( int $post_id, mixed $terms, string $taxonomy = '', bool $append = false )
パラメータ
$post_id
(int) – タームを設定する投稿のID。$terms
(mixed) – 設定するタームの名前またはIDの配列。$taxonomy
(string) – タームが属するタクソノミーの名前(デフォルトは空)。$append
(bool) –true
の場合、既存のタームに新しいタームを追加します(デフォルトはfalse
)。
戻り値
- 成功した場合は設定されたタームの配列を返します。失敗した場合は
false
を返します。
関連する関数
使用可能なバージョン
wp_set_post_terms
関数は、WordPress 2.3.0以降で使用可能です。
コアファイルのパス
この関数はwp-includes/taxonomy.php
に含まれています。
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | 〇 |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | 〇 |
pre_get_posts | |
wp | 〇 |
template_redirect | |
get_header | |
wp_head |
非推奨または削除されたバージョン
wp_set_post_terms
関数は、特定のバージョンで非推奨または削除されていないため、そのような情報はありません。
サンプルコード
サンプルコード1: タームを投稿に追加
$post_id = 1; // 投稿ID
$terms = ['カテゴリー1', 'カテゴリー2']; // カテゴリ名
$taxonomy = 'category'; // タクソノミーの種類
wp_set_post_terms($post_id, $terms, $taxonomy);
このコードは、IDが1の投稿に「カテゴリー1」と「カテゴリー2」を追加します。
サンプルコード2: タグを設定
$post_id = 2; // 投稿ID
$tags = ['タグ1', 'タグ2']; // タグ名
$taxonomy = 'post_tag'; // タクソノミーの種類
wp_set_post_terms($post_id, $tags, $taxonomy);
このコードは、IDが2の投稿に「タグ1」と「タグ2」を設定します。
サンプルコード3: 存在するタームのIDを使用
$post_id = 3; // 投稿ID
$term_ids = [5, 6]; // タームのID
$taxonomy = 'category'; // タクソノミーの種類
wp_set_post_terms($post_id, $term_ids, $taxonomy);
このコードは、IDが3の投稿にタームID 5と6を関連付けます。
サンプルコード4: タームを上書き
$post_id = 4; // 投稿ID
$terms = ['新しいカテゴリー']; // 新しく設定するカテゴリー名
$taxonomy = 'category'; // タクソノミーの種類
$append = false; // 既存のタームを上書き
wp_set_post_terms($post_id, $terms, $taxonomy, $append);
このコードは、IDが4の投稿のカテゴリを「新しいカテゴリー」に上書きします。
サンプルコード5: 複数の投稿に同じタームを設定
$post_ids = [5, 6, 7]; // 投稿の配列
$terms = '共通のカテゴリー'; // 設定するカテゴリー名
$taxonomy = 'category'; // タクソノミーの種類
foreach ($post_ids as $post_id) {
wp_set_post_terms($post_id, $terms, $taxonomy);
}
このコードは、IDが5、6、7の各投稿に「共通のカテゴリー」を設定します。