回答:
次のようにwp_insert_post()およびadd_post_meta()を使用します。
// insert the post and set the category
$post_id = wp_insert_post(array (
'post_type' => 'your_post_type',
'post_title' => $your_title,
'post_content' => $your_content,
'post_status' => 'publish',
'comment_status' => 'closed', // if you prefer
'ping_status' => 'closed', // if you prefer
));
if ($post_id) {
// insert post meta
add_post_meta($post_id, '_your_custom_1', $custom1);
add_post_meta($post_id, '_your_custom_2', $custom2);
add_post_meta($post_id, '_your_custom_3', $custom3);
}
'meta_input' => ['_your_custom_1' => $custom1, '_your_custom_2' => custom2]
上記の@webawareの素晴らしい答えに加えて、これはwordpress 4.4.0以降、すべてwp_insert_postを介して処理できます。呼び出し。
$post_id = wp_insert_post(array (
'post_content' => $content,
'post_title' => $title,
'post_type' => 'your_custom_post_type',
'post_status' => 'publish',
// some simple key / value array
'meta_input' => array(
'your_custom_key1' => 'your_custom_value1',
'your_custom_key2' => 'your_custom_value2'
// and so on ;)
)
));
if ($post_id) {
// it worked :)
}
これは、Gravity Formsプラグインを使用して非常に簡単に実現できます。バックエンドでカスタム投稿タイプを入力するフォームを構築できます。この投稿は、下書きまたは公開済みとして表示するように設定できます。カスタムフィールドを追加しても問題ありません。私の場合、クライアントの声を集めるためにそれを使用しました。