Функция WordPress используется для программного представления данных. Стандартные поля для отправки включают содержание, отрывко, заголовок, дату и многое другое.
То, для чего нет документации, это как отправить данные в настраиваемое поле. Я знаю, что это возможно с функцией add_post_meta ($post_id, $meta_key, $meta_value, $unique);
Но как включить это в стандартную функцию wp_insert_post
?
<?php
$my_post = array(
'post_title' => $_SESSION['booking-form-title'],
'post_date' => $_SESSION['cal_startdate'],
'post_content' => 'This is my post.',
'post_status' => 'publish',
'post_type' => 'booking',
);
wp_insert_post( $my_post );
?>
wp_insert_post
вернет ID поста, который вы только что создали.Если вы объедините это со следующей функцией
__update_post_meta
:Вы получите следующее:
Вы можете просто добавить add_post_meta после wp_insert_post
Используйте фильтр
save_post
, затем вызовитеadd_post_meta
в своей функции фильтра.Я не думаю, что вы можете использовать его с wp_insert_post ();.
Причина в том, что WP хранит два типа данных. Сообщения хранятся в одной большой монолитной таблице с дюжиной разных столбцов (wp_posts); настраиваемые поля хранятся в более простой таблице из 4 столбцов (wp_postmeta), состоящей в основном из мета-ключа и значения, связанного с публикацией.
Следовательно, вы не можете хранить пользовательские поля, пока у вас нет идентификатора записи.
Попробуйте это: