wp_set_post_terms()


WordPressのwp_set_post_terms()関数は、投稿にタクソノミーの用語を割り当てるために使用されます。この関数を使用することで、投稿のカテゴリーやタグを動的に設定できます。

構文

wp_set_post_terms( int $post_id, array $terms, string $taxonomy, bool $append = false );

引数の説明:

  • $post_id (int) — 用語を割り当てたい投稿のID。
  • $terms (array) — 割り当てる用語ID、スラッグ、または名前の配列。
  • $taxonomy (string) — 使用するタクソノミーのスラッグ(例: ‘category’, ‘post_tag’)。
  • $append (bool) — trueの場合、既存の用語を保持し新しい用語を追加します。falseの場合、既存の用語を上書きします。デフォルトはfalse。

例 1: 投稿にカテゴリを設定する

投稿に特定のカテゴリを割り当てます。

wp_set_post_terms( get_the_ID(), array( 'technology', 'news' ), 'category' );

例 2: 投稿にタグを設定する

投稿に複数のタグを割り当てます。

wp_set_post_terms( get_the_ID(), array( 'WordPress', 'PHP' ), 'post_tag' );

例 3: カスタムタクソノミーの用語を設定する

カスタムタクソノミーに用語を追加します。

wp_set_post_terms( get_the_ID(), array( 'premium', 'basic' ), 'membership' );

例 4: 既存の用語を保持して新しい用語を追加する

既存の用語に新しい用語を追加します。

wp_set_post_terms( get_the_ID(), array( 'updates' ), 'category', true );

例 5: 投稿IDを取得して用語を設定する

投稿IDを動的に取得し、用語を割り当てます。

$post_id = get_post( array( 'name' => 'sample-post' ) )->ID;
wp_set_post_terms( $post_id, array( 'example', 'demo' ), 'category' );

注意事項

  • タクソノミーが登録されていない場合、この関数はエラーを返す可能性があります。
  • $appendをfalseに設定すると、投稿に既に割り当てられている用語が削除されます。
  • 用語のスラッグが正確であることを確認してください。

関連機能: