$new_post = array(
'post_title' => $title,
'post_content' => $description,
'post_category' => array($_POST['cat']), // Usable for custom taxonomies too
'tags_input' => array($tags),
'post_status' => 'publish', // Choose: publish, preview, future, draft, etc.
'post_type' => 'my_custom_type'
);
wp_insert_post($new_post);
投稿IDを取得する方法自動的に生成されますか?フォームが投稿される前にそれをどのように表示できますか?投稿IDを作成する予定のフロントエンドフォームを作成しようとしています。 「やあ、あなたは記事nr#<?php echo $postID;?>
」を投稿しています。方法はありますか、それとも私はまったく気にしていませんか?前もって感謝します。
あなたは2つのステップでこれをしなければならないでしょう。まず、wp_insert_post()を使用してドラフトモードで投稿を作成します。 wp_insert_post自体が挿入された投稿のIDを返します。
<?php
$new_post = array(
'post_title' => 'Draft title',
'post_status' => 'draft'
'post_type' => 'my_custom_type'
);
$postId = wp_insert_post($new_draft_post);
?>
<form method="post" action="your-action.php">
<p>Hey! You are creating the post #<?php echo $postId; ?></p>
<input type="hidden" name="draft_id" value="<?php echo $postId; ?>">
...
</form>
その後、アクションページでドラフトIDを取得して投稿を更新します。ドラフトIDを通知するwp_update_postを使用します。
<?php
$draftId = $_POST['draft_id'];
...
$updated_post = array(
'ID' => $draftId,
'post_title' => $title,
...
'post_status' => 'publish', // Now it's public
'post_type' => 'my_custom_type'
);
wp_update_post($updated_post);
?>
それが役に立てば幸い :)
ドキュメント :を確認してください。
戻り値:(int | WP_Error)成功した場合の投稿ID。値0または失敗した場合はWP_Error.
したがって:
$result = wp_insert_post( $data );
if ( $result && ! is_wp_error( $result ) ) {
$post_id = $result;
// Do something else
}