$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);
Comment puis-je obtenir le post-id? Est-il généré automatiquement? Comment puis-je l'afficher avant que le formulaire ne soit posté? J'essaie de créer un formulaire frontal où je montre à l'utilisateur que l'identifiant de la publication va être créé. Comme "Hey mec, vous postez le n ° d’article # <?php echo $postID;?>
". Y a-t-il un moyen ou je suis totalement hors de l'esprit? Merci d'avance.
Vous devrez le faire en deux étapes. Tout d'abord, vous allez créer une publication en mode brouillon à l'aide de wp_insert_post (). Le wp_insert_post lui-même vous renverra l'ID du message inséré:
<?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>
Après cela, dans la page d'action, vous obtiendrez le brouillon d'ID et mettrez à jour le message. Vous utiliserez wp_update_post pour informer le brouillon ID.
<?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);
?>
J'espère que ça aide :)
Vérifiez la documentation :
Retour: (int | WP_Error) L'ID de publication en cas de succès. La valeur 0 ou WP_Error en cas d'erreur.
Ainsi:
$result = wp_insert_post( $data );
if ( $result && ! is_wp_error( $result ) ) {
$post_id = $result;
// Do something else
}