Дублируется записи при добавлении в базу под wordpress
Есть сайт на wordpress, установлен плагин произвольных записей acf, своя тема и созданный кастомный тип записей отзывы.
На странице запрашиваю от пользователя данные для публикации отзыва (имя, профессия, город, фото) и с помощью ajax переадресовываю на страницу, где заполняю необходимые поля и записываю в базу.
Запись создается, но, при этом публикуется дважды: первая без фото, вторая с.
Грешу на то, что функции wp_insert_post и media_handle_upload дублируют другу друга, но не знаю как это обойти.
add_review.php
// Подключаем необходимые файлы
require_once( $_SERVER['DOCUMENT_ROOT'].'/wp-load.php');
require_once( ABSPATH . 'wp-admin/includes/image.php' );
require_once( ABSPATH . 'wp-admin/includes/file.php' );
require_once( ABSPATH . 'wp-admin/includes/media.php' );
// Получение отправленных данных
$user_name = trim($_POST['name']);
$user_message = trim($_POST['message']);
$user_job = trim($_POST['job']);
$user_city = trim($_POST['city']);
$user_photo = trim($_FILES['photo']['name']);
$location = wp_upload_dir()['path']."/".$user_photo;
$post_data = array(
'post_author' => 1,
'post_status' => 'pending', # статус - «На утверждении»
'post_type' => 'reviews', # тип записи - «Отзывы»
'post_title' => 'Отзыв - ' . $user_name, # заголовок отзыва
'post_content' => $user_message, # текст отзыва
// 'tax_input' => ['{Название таксономии}' => array($review_type)],
);
// Вставляем запись в базу данных
$post_id = wp_insert_post( $post_data );
$attachment_id = media_handle_upload( 'photo', 0 );
update_field( 'review_name', $user_name, $post_id ); # имя
update_field( 'review_job', $user_job, $post_id ); # профессия
update_field( 'review_city', $user_city, $post_id ); # город
update_field( 'review_photo', $attachment_id, $post_id ); # фото
js
$('#add_review').submit(function (e) {
e.preventDefault();
var photo = $('#review_file')[0].files[0];
var formData = $(this).serializeArray();
formData.push({photo: 'photo'});
$.ajax({
type: 'POST',
url: '/wp-content/themes/credit7/includes/add_review.php',
data: formData,
success: function(data) {
console.log('Спасибо. Ваш отзыв отправлен.',data);
$(this).trigger('reset'); // очищаем поля формы
},
error: function() {
console.log('Ошибка отправки.');
}
});
});