WordPressプログラムで投稿を作成する


構文

  • wp_insert_post(配列$ args、ブール$ wp_error);

パラメーター

パラメータ説明
$ args(配列必須) キー値以下の要素の配列。
$ wp_error(Booleanオプション) 失敗した場合のWP_Errorを返します。

備考


引数

次の表に、最初のパラメータ(配列)の内部で使用できる要素のリストを示します。

パラメータ説明
ID (Int)ポストID。 0以外の場合は、そのIDを持つ投稿が更新されます。デフォルトは0です。
post_author (Int)投稿を追加したユーザーのID。デフォルトは現在のユーザーIDです。
投稿日 (文字列)投稿の日付。デフォルトは現在の時刻です。
post_date_gmt (文字列)GMTタイムゾーンでの投稿の日付。デフォルトは$ post_dateの値です。
post_content (混合)投稿の内容。デフォルトは空です。
post_content_filtered (String)フィルタリングされた投稿コンテンツ。デフォルトは空です。
記事のタイトル (String)投稿のタイトル。デフォルトは空です。
post_category (配列)ポストカテゴリ値の配列。
post_excerpt(String)投稿の抜粋。デフォルトは空です。
post_status (文字列)投稿ステータス。デフォルトドラフト。
post_type (文字列)投稿タイプ。デフォルトの投稿。
comment_status (String)投稿がコメントを受け入れるかどうか。開いているか閉じています。デフォルトはdefault_comment_statusオプションの値です。
ping_status (String)投稿がpingを受け入れるかどうか。開いているか閉じています。デフォルトはdefault_ping_statusオプションの値です。
post_password (文字列)投稿にアクセスするためのパスワード。デフォルトは空です。
post_name (String)投稿名またはスラッグ。デフォルトは、新しい投稿を作成するときに消された投稿のタイトルです。
to_ping (文字列)スペースまたはキャリッジリターンで区切られたURLのリストをpingに渡します。デフォルトは空です。
pinged (String)pingされたURLのスペースまたはキャリッジリターンで区切られたリスト。デフォルトは空です。
変更後 (文字列)投稿が最後に変更された日付。デフォルトは現在の時刻です。
post_modified_gmt (String)投稿がGMTタイムゾーンで最後に変更された日付。デフォルトは現在の時刻です。
post_parent (Int)もしあれば、それが属する投稿にこれを設定します。デフォルトは0です。
menu_order (Int)投稿を表示する順序。デフォルトは0です。
post_mime_type (String)投稿のMIMEタイプです。デフォルトは空です。
ガイド (String)Postを参照するためのグローバル一意のID。デフォルトは空です。
tax_input (配列)タクソノミの名前でキーが付けられたタクソノミー用語の配列。デフォルトは空です。
meta_input (配列)ポストメタキーによってキーされたポストメタ値の配列。デフォルトは空です。

重複する投稿を避ける

この機能を実行すると、おそらく少なくとも私に起こった重複した投稿を得ることができます。 (あなたはPost WordPress Sectionにそれをチェックすることができます)

私は解決策を見つけた。

if( !get_page_by_title( $title, 'OBJECT', 'post' ) ){
    $my_post = array('post_title' => $title,
        'post_content' => 'Content',
        'tags_input' => $tags,
        'post_category' => array(2),
        'post_status' => 'publish'
    );

    $result = wp_insert_post( $my_post );
}

説明

新しい投稿を保存する前に、投稿のタイトルをパラメータとして使用して新しい投稿が既に存在するかどうかを検証し、投稿のタイトルがない場合は新しい投稿を保存することができます。

ここで get_page_by_titleのドキュメントを確認してください。

プログラムで投稿を作成する 関連する例