Вы используете wp_insert_post
дважды, что не имеет смысла. Первый wp_insert_post
правильный и вернет $post_id
созданного сообщения в случае успеха. Тем не менее, ваш
$newPostID = wp_insert_post($post_id);
абсолютно неверен и всегда будет хранить 0 в результате в $newPostID
, независимо от того, существовала ли запись заранее или нет, так как $post_id
никогда не будет содержать действительный массив записей. Вам нужно получить идентификатор существующего сообщения (которое post_exists
уже возвращает в случае успеха). Измените свой код следующим образом:
$existingPostID = post_exists($post_title);
if (!$existingPostID) {
$existingPostID = wp_insert_post(array(
'post_type' => 'vimeo_videos',
'post_title' => $post_title,
'post_status' => 'publish',
));
}
if ($existingPostID) {
update_post_meta( $existingPostID, 'video_url_id', $video_id );
}