Obține ID-ul postării din wp_insert_post()
$new_post = array(
'post_title' => $title,
'post_content' => $description,
'post_category' => array($_POST['cat']), // Utilizabil și pentru taxonomii personalizate
'tags_input' => array($tags),
'post_status' => 'publish', // Alege: publish, preview, future, draft, etc.
'post_type' => 'my_custom_type'
);
wp_insert_post($new_post);
Cum pot obține ID-ul postării? Este generat automat? Cum pot să-l afișez înainte ca formularul să fie trimis? Încerc să creez un formular în frontend unde să afișez utilizatorului ID-ul postării care va fi creată. Ceva de genul "Hei, vei posta articolul nr # <?php echo $postID;?>
". Există vreo metodă sau sunt total pe lângă? Mulțumesc anticipat.
Va trebui să faceți acest lucru în doi pași. Mai întâi, veți crea un articol în modul ciornă, folosind wp_insert_post(). Funcția wp_insert_post însăși vă va returna ID-ul articolului inserat:
<?php
$new_post = array(
'post_title' => 'Titlul ciornei',
'post_status' => 'draft',
'post_type' => 'my_custom_type'
);
$postId = wp_insert_post($new_post);
?>
<form method="post" action="your-action.php">
<p>Hei! Creezi articolul #<?php echo $postId; ?></p>
<input type="hidden" name="draft_id" value="<?php echo $postId; ?>">
...
</form>
După aceea, în pagina de acțiune, veți obține ID-ul ciornei și veți actualiza articolul. Veți folosi wp_update_post specificând ID-ul ciornei.
<?php
$draftId = $_POST['draft_id'];
...
$updated_post = array(
'ID' => $draftId,
'post_title' => $title,
...
'post_status' => 'publish', // Acum este public
'post_type' => 'my_custom_type'
);
wp_update_post($updated_post);
?>
Sper că vă ajută :)

Verifică documentația:
Returnează: (int|WP_Error) ID-ul postului în caz de succes. Valoarea 0 sau WP_Error în caz de eșec.
Astfel:
$result = wp_insert_post( $data );
if ( $result && ! is_wp_error( $result ) ) {
$post_id = $result;
// Fă altceva
}
