wp_insert_term

説明

mixed wp_insert_term( string $term, string $taxonomy [ , mixed $args = array() ] )
ターム(カテゴリや投稿タグ)を登録する。

パラメータ

  • $term
    ターム名を指定。
  • $taxonomy
    'category'や'post-tag'などのタクソノミー名を指定。
  • $args
    付加情報を連想配列または文字列で指定(省略時はarray())。連想配列の要素は次の通り。
    キー名内容省略時の値
    'alias_of'グループ用''
    'description'説明''
    'parent'親ターム(カテゴリ)のID(親がない場合は0)0
    'slug'スラッグ''

返り値

タームが登録できた場合は'term_id'と'term_taxonomy_id'を要素に持つ連想配列を、登録できなかった場合は WP_Errorオブジェクトを返す。

[5.1.0]重複するターム情報が見つかった場合は、先に登録されていたターム情報の'term_id'と'term_taxonomy_id'を要素に持つ連想配列を返す。


注意

パラメータ$argsを省略した場合、付加情報は次のようになる。

array( 'alias_of' => '', 'description' => '', 'parent' => 0, 'slug' => '')

使用例

  • 投稿タグ'新商品'を登録する。
    <?php wp_insert_term( '新商品', 'post_tag' ); ?>
  • 小カテゴリ'トマト'を登録する(親カテゴリのIDは10)。
    <?php wp_insert_term( 'トマト', 'category', array( 'slug'=>'tomato', 'parent'=>10 ) ); ?>

フィルター

[3.0.0]タクソノミーの存在を確認後、'term_id_filter'フィルターを呼び出す。パラメータ$term$taxonomyには本関数が受け取った内容が格納されている。
$term = apply_filters( 'pre_insert_term', $term, $taxonomy );
[4.7.0]ターム情報を登録する前に'wp_insert_term_data'フィルターが呼び出す。パラメータ$dataにはターム情報(連想配列)が、$taxonomyにはタクソノミー名が、$argsには本関数が受け取った内容にデフォルト値がマージされたものが格納されている。
$data = apply_filters( 'wp_insert_term_data', $data, $taxonomy, $args );
[5.1.0]ターム情報を登録した後に'wp_insert_term_duplicate_term_check'フィルターを呼び出す。パラメータ$duplicate_termには重複するターム情報がある場合はそれが格納されており、このフィルターの返り値がそのまま(空以外)の場合は、本関数の呼び出しで登録したターム情報は削除される。パラメータ$termおよび $taxonomyには本館数が受け取った内容が、$argsには本関数が受け取った内容にデフォルト値がマージされたものが、$tt_idにはタームタクソノミー情報のIDが格納されている。
$duplicate_term = apply_filters( 'wp_insert_term_duplicate_term_check', $duplicate_term, $term, $taxonomy, $args, $tt_id );
[2.3.0]タームの登録後("create_{$taxonomy}"アクションの実行後)に'term_id_filter'フィルターを呼び出す。パラメータ$term_idにはターム情報のIDが、$tt_idにはタームタクソノミー情報のIDが格納されている。
$term_id = apply_filters( 'term_id_filter', $term_id, $tt_id );

アクション

ターム情報の更新直前に'edit_terms'アクションを実行する。パラメータ$term_idにはターム情報のIDが格納されている。
do_action( 'edit_terms', $term_id );
ターム情報の更新直後に'edited_terms'アクションを実行する。パラメータ$term_idにはターム情報のIDが格納されている。
do_action( 'edited_terms', $term_id );
[2.3.0]タクソノミー情報の追加後に"create_term"アクションを実行する。パラメータ$term_idにはターム情報のIDが、$tt_idにはタームタクソノミー情報のIDが、$taxonomyにはタクソノミー名が格納されている。
do_action( "create_term", $term_id, $tt_id, $taxonomy );
[2.3.0]タクソノミー情報の追加後に"create_{$taxonomy}"アクションを実行する($taxonomyは'category'や'post_tag'など)。パラメータ$term_idにはターム情報のIDが、$tt_idにはタームタクソノミー情報のIDが格納されている。
do_action( "create_{$taxonomy}", $term_id, $tt_id );
[2.3.0]キャッシュクリア後(返り値を返す直前)に"created_term"アクションを実行する。パラメータ$term_idにはターム情報のIDが、$tt_idにはタームタクソノミー情報のIDが、$taxonomyにはタクソノミー名が格納されている。
do_action( "created_term", $term_id, $tt_id, $taxonomy );
[2.3.0]キャッシュクリア後(返り値を返す直前)に"created_{$taxonomy}"アクションを実行する($taxonomyは'category'や'post_tag'など)。パラメータ$term_idにはターム情報のIDが、$tt_idにはタームタクソノミー情報のIDが格納されている。
do_action( "created_{$taxonomy}", $term_id, $tt_id );
[5.5.0]"created_{$taxonomy}"アクションの後に'saved_term'アクションを実行する。パラメータ$term_idにはターム情報のIDが、$tt_idにはタームタクソノミー情報のIDが、$taxonomyにはタクソノミー名が、$updateにはfalseが格納されている。
do_action( 'saved_term', $term_id, $tt_id, $taxonomy, $update );
[5.5.0]'saved_term'アクションの後に"saved_{$taxonomy}"アクションを実行する($taxonomyは'category'や'post_tag'など)。パラメータ$term_idにはターム情報のIDが、$tt_idにはタームタクソノミー情報のIDが、$updateにはfalseが格納されている。
do_action( "saved_{$taxonomy}", $term_id, $tt_id, $update );

ソースファイル

/wp-includes/taxonomy.php

最終更新 : 2020年08月31日 11:27



お勧め

HTML編集モードに定型文ボタンを追加する(2011年6月1日 更新)

投稿編集ページにはビジュアル編集モードとHTML編集モードがあり、それらを拡張するプラグインも多数存在している。そういったプラグインを利用するのもいいのだが、仕組みを理解するのも悪くないはず。というわけで、ここではHTML編集モードのボタンの仕組みと定型文を挿入するボタンを追加する方法を紹介する。

4.4では投稿ページも専用テンプレートが適用できる(2018年5月27日 更新)

従来、特定の固定ページには専用テンプレートを適用できるのですが、投稿ページに適用させるためにはアクションやフィルターを利用する必要がありました。4.4では特定の投稿ページに標準で専用テンプレートを適用できるようになりそうです。

3.2標準テーマ「Twenty Eleven」は投稿フォーマットに着目(2011年7月6日 更新)

新テーマ「Twenty Eleven」のトップページでは、投稿フォーマットに応じて表示を切り替える仕組みが提案されている。ここでは、その投稿フォームの活用方法を簡単に紹介する。

標準で使用できる数少ないショートコード[caption]とは(2018年5月27日 更新)

画像をアップロードして「投稿に追加」ボタンをクリックすると、投稿記事内にリンク付きのimgタグか、ショートコードのが挿入される。ここではそれらの書式を整理する。

ショートコードを含んだページを表示する前に何か処理する(2014年5月28日 更新)

固定ページまたは投稿ページに独自のフォームを埋め込む。入力→登録の2段階のフォームなら著名なプラグイン「Contact Form 7」を利用すればいいのだが、クライアントの依頼は入力→確認→登録の3段階で組み込む要素が特化していたので、独自の実装方法を考えることになった。