Из фронтенда ф-цией wp_insert_post() добавляю новую запись, указывая в массиве аргументов
'post_content' => '[1540980416]', где цифры - текущее время Unix. Обновляю запись оттуда же той же ф-цией, уже указывая ID (при этом
'post_content' перезаписывается). Однако исходной редакии не остаётся. По шагам:
- Создаю запись ('post_content' => '[1540980416]');
- Изменяю ('post_content' => '[1540980488]', 'ID' => 416); // запись изменяется, пред. редакции нет
- Снова изменяю ('post_content' => '[1540980562]', 'ID' => 416); // запись изменяется, пред. редакция есть, исходной нет.
Замечания:- Если создаю запись из фронтенда, а затем редактирую из админки, та же история;
- Если создаю запись из админки и изменяю, исходная редакция есть, но перед публикацией WP успевает сохранить черновик моей ещё неопубликованной записи.
В принципе, конечно, вопрос решается циклом из сохранения записи в кач-ве черновика (wp_insert_post() вернёт ID) и тут же обновления до "Опубликовано", но как-то не по фен-шую так делать. Хотя конструкция такого типа прокатывает:
$inserted_post = wp_insert_post(
array(
'post_title' => [post_title],
'post_name' => [post_name],
'post_content' => [1540230966],
'post_status' => 'draft',
'post_category' => array([post_category]),
'post_author' => [user_ID]
)
);
if ($inserted_post) {
$updated_post = wp_insert_post(
array(
'ID' => $inserted_post,
'post_title' => [post_title],
'post_name' => [post_name],
'post_content' => [1540230966],
'post_status' => 'publish',
'post_category' => array([post_category]),
'post_author' => [user_ID]
)
);
if ($updated_post) {
//
}
}