説明
mixed wp_insert_post( array $postarr [ , bool $wp_error = false [ , bool $fire_after_hooks = true ] ] )
投稿情報を登録する。
パラメータ
- $postarr投稿情報を連想配列で指定。連想配列の内容(抜粋)は次の通り。
キー名 省略時の値 内容 'post_status' 'draft' 投稿ステータス('draft'、'publish'、'private'、'future'など) 'post_type' 'post' 投稿タイプ('post'、'page'、カスタム投稿タイプ名など) 'post_author' $user_ID 投稿者ID 'ping_status' get_option( 'default_ping_status' ) デフォルトのピンステータス 'post_parent' 0 親の投稿情報ID 'menu_order' 0 メニューの表示順 'to_ping' '' 'pinged' '' 'post_password' '' パスワードによるアクセス制限時のパスワード 'guid' '' 'post_content_filtered' '' 'post_excerpt' '' 抜粋 'import_id' 0 新しい投稿情報ID(未使用のID) 'post_content' '' 投稿記事 'post_title' '' タイトル 'ID' ― 投稿情報ID 'post_category' ― カテゴリーIDの配列 'tags_input' ― 投稿タグの文字列(複数の場合は,(カンマ)区切り) 'comment_status' ― コメントステータス('open'、'closed'など) 'post_date' ― 投稿日時 - $wp_error登録失敗時にエラー内容を示す WP_Errorオブジェクトを返す場合はtrueを、0を返す場合はfalseを指定(省略時はfalse)
- $fire_after_hooks[5.6.0]投稿情報とその関連情報の保存後に wp_after_insert_post関数を呼び出す場合はtrueを指定(省略時はtrue)。
返り値
正しく登録できた場合は投稿情報のIDを返す。登録できなかった場合は、パラメータ$wp_errorにしたがってWP_Errorオブジェクトまたは0を返す。注意
'ID'プロパティで指定した投稿情報がすでに存在する場合は、追加は行わず、その投稿情報を更新する。なお、公開済みの投稿危記事を'post_status'プロパティを省略して更新すると、ステータスが「下書き('draft')」などに変わってしまう。また固定ページを'post_type'プロパティを省略して更新すると、投稿タイプが「投稿('post')」に変わってしまう。どちらも注意が必要だ。'post_status'プロパティが'private'以外の場合、'post_password'プロパティを指定しても無効となる。
'post_type'プロパティが'post'で'post_status'プロパティが'auto-draft'以外の場合、'post_category'プロパティが省略されている場合はデフォルトのカテゴリーが適用される。
内部では、デフォルトのカテゴリーID、コメントステータス(「新しい投稿へのコメントを許可する」の値)、ピンステータス(「他のブログからの通知 (ピンバック・トラックバック) を受け付ける」の値)を取得している。
$post_category = array( get_option('default_category') );
$comment_status = get_option( 'default_comment_status' );
$ping_status = get_option( 'default_ping_status' );使用例
- 投稿情報としてタイトルと内容を登録する。<?php $post_id = wp_insert_post( array( 'post_title'=>'テスト投稿', 'post_content'=>'この投稿はテストです。' ) ); ?>
- 投稿情報として$postarrを登録する。登録できなかった場合はエラー内容を取得する。<?php $post_id = wp_insert_post( $postarr, true ); ?>
フィルター
[3.9.0]更新する投稿情報の再構築後、投稿タイプが'attachment'の場合は'wp_insert_attachment_data'フィルターを呼び出す。パラメータ$dataには再構築された投稿情報が、$postarrには本関数が受け取った内容にデフォルト要素を補完後にサニタイズしたものが格納されている。[5.4.1]パラメータ$unsanitized_postarrが追加され、本関数が受け取り時の$postarrの内容が格納されている。[6.0.0]パラメータ$updateが追加され、投稿済み($postarr['ID']が空でない)の場合はtrueが格納されている。$data = apply_filters( 'wp_insert_attachment_data', $data, $postarr, $unsanitized_postarr, $update );$data = apply_filters( 'wp_insert_post_data', $data, $postarr, $unsanitized_postarr, $update );if ( apply_filters( 'wp_insert_post_empty_content', $maybe_empty, $postarr ) ) {$post_parent = apply_filters( 'wp_insert_post_parent', $post_parent, $post_ID, compact( array_keys( $postarr ) ), $postarr );アクション
[2.5.0]投稿情報を更新する前に'pre_post_update'アクションを呼び出す。do_action( 'pre_post_update', $post_ID, $data );do_action( 'pre_post_insert', $data );do_action( "edit_post_{$post->post_type}", $post_ID, $post );do_action( 'edit_post', $post_ID, $post );do_action( 'post_updated', $post_ID, $post_after, $post_before );do_action( "save_post_{$post->post_type}", $post_ID, $post, $update );do_action( 'save_post', $post_ID, $post, $update );do_action( 'wp_insert_post', $post_ID, $post, $update );ソースファイル
/wp-includes/post.php最終更新 : 2025年12月04日 09:37
関連
お勧め
meta_compare_key使ってみた(2019年3月19日 更新)
ブロックエディターの登場により、標準のカスタムフィールドを使う機会はかなり減った気がする。そんな中、5.1.0で追加されたのが、カスタムフィールド名(メタキー)に含まれる文字列を指定する'meta_compare_key'キーだ。
WP_List_Tableクラスの「一括操作」フォームを使ってみた(2018年5月27日 更新)
今回は「WP_List_Tableクラスを使ってみた」の続き。投稿一覧やプラグインページなどにある「一括操作」(Bulkアクション)フォーム対応に関するメモである。
テーマから投稿画像のサイズを指定する(2012年3月15日 更新)
投稿記事に挿入する画像サイズは、サムネイル(150×150)、中サイズ(300×300)、大サイズ(1024×1024)がデフォルトだが、テーマによっては別のサイズを指定したい場合はある。基本的には、「設定」-「メディア」の「メディア設定」ページで指定できるが、テーマ内のfunctions.phpで設定しておくとちょっと便利かもしれない。ログインページを変える(2014年9月12日 更新)
WordPressの標準的な不正ログイン対策としては、ログインIDは'admin'を避けるパスワードはユニークで長くする、場合によってはアクセスできるIPアドレスを制限する、といった具合だろう。これらの他に何かできないものだろうかと、ちょっと考えてみた。新規投稿時の本文プレースホルダーテキストを変える(2021年9月9日 更新)
ブロックエディターに影響を与えるフィルターは多数存在する。今回紹介するフィルターはその1つで、新規投稿時の本文ブロックのプレースホルダーテキストを変更するものだ。