Создать запись с дефолтными полями
$post_data = array(
'post_title' => $post_title,
'post_content' => $post_content,
'post_name' => $post_slug,
// другие поля
);
$post_id = wp_insert_post( wp_slash($post_data) );
$post_id пригодится если нужно добавить картинку или мета поля.
Добавить картинку и произвольные поля
Поля, на примере SEO данных плагина Yoast SEO.
if ($post_id) {
$img = 'URL адрес картинки';
$post_image_url = media_sideload_image( $img, $post_id, $name, 'src' );
update_post_meta( $post_id, '_yoast_wpseo_title', 'Заголовок' );
update_post_meta( $post_id, '_yoast_wpseo_focuskw', 'Ключевое слово' );
}
