ワードプレスのwp_set_post_terms関数の使用方法・解説

概要

wp_set_post_terms関数は、指定された投稿(ポスト)に対してターム(カテゴリやタグなど)を設定するために使用されます。この関数は、投稿情報にタームを設定することで、コンテンツの整理や分類を助け、サイト全体のナビゲーションや検索機能を向上させることができます。具体的には、以下のような機能を実装する際によく使われます:

  1. 投稿に特定のカテゴリを設定する
  2. 投稿にタグを追加または更新する
  3. 複数のタームを同時に設定する
  4. 既存のタームを投稿から削除する
  5. 投稿を特定のカスタムタクソノミーに関連付ける
  6. 複数の投稿に同じタームを一括設定する
  7. タームのスラッグを使用して投稿をフィルタリングする
  8. タームの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の各投稿に「共通のカテゴリー」を設定します。

この関数について質問する


上の計算式の答えを入力してください