Получение ID поста из wp_insert_post()
$new_post = array(
'post_title' => $title,
'post_content' => $description,
'post_category' => array($_POST['cat']), // Также работает с пользовательскими таксономиями
'tags_input' => array($tags),
'post_status' => 'publish', // Варианты: publish, preview, future, draft и т.д.
'post_type' => 'my_custom_type'
);
wp_insert_post($new_post);
Как я могу получить ID поста? Он генерируется автоматически? Как я могу показать его до отправки формы? Я пытаюсь создать фронтенд-форму, где хочу показать пользователю ID поста, который будет создан. Например: "Привет, ты публикуешь статью № <?php echo $postID;?>
".
Есть ли способ сделать это или я совсем не в себе? Заранее спасибо.

Вам нужно выполнить это в два этапа. Сначала вы создадите пост в режиме черновика, используя wp_insert_post(). Сама функция wp_insert_post вернет вам ID созданного поста:
<?php
$new_post = array(
'post_title' => 'Заголовок черновика',
'post_status' => 'draft'
'post_type' => 'my_custom_type'
);
$postId = wp_insert_post($new_post);
?>
<form method="post" action="your-action.php">
<p>Привет! Вы создаете пост #<?php echo $postId; ?></p>
<input type="hidden" name="draft_id" value="<?php echo $postId; ?>">
...
</form>
После этого на странице обработки вы получите ID черновика и обновите пост. Вы используете wp_update_post, передавая ID черновика.
<?php
$draftId = $_POST['draft_id'];
...
$updated_post = array(
'ID' => $draftId,
'post_title' => $title,
...
'post_status' => 'publish', // Теперь пост опубликован
'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;
// Делаем что-то ещё
}
