Функция 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 );
?>
php
custom-field
post-meta
posts
Робин я рыцарь
источник
источник
public
модификатора перед «функцией». Если вы включаете саму функцию, не помещая ее в класс, вам не нужно добавлятьpublic
Вы можете просто добавить add_post_meta после wp_insert_post
источник
Я не думаю, что вы можете использовать его с wp_insert_post () ;.
Причина в том, как WP хранит два типа данных. Сообщения хранятся в одной большой монолитной таблице с дюжиной разных столбцов (wp_posts); Пользовательские поля хранятся в более простой таблице из 4 столбцов (wp_postmeta), состоящей в основном из мета-ключа и значения, связанного с постом.
Следовательно, вы не можете хранить пользовательские поля, пока у вас нет идентификатора записи.
Попробуй это:
Этот пост Кодекса помог - это своего рода противоположность того, что вы делаете (т.е. удаляете строку БД после удаления поста): http://codex.wordpress.org/Plugin_API/Action_Reference/delete_post
источник
Используйте
save_post
фильтр, затем вызовитеadd_post_meta
функцию фильтра.источник
save_post
Действие @aendrew находится в самом конце функции, у него есть идентификатор сообщения и переданный ему объект, ответ - звук.