Я модифицирую существующий плагин, и я хочу добавить новое поле в форму, а затем отправить это поле вместе с сообщением. Сообщение отправляется в wp_posts. Я читал в Google, что для этого просто нужно использовать update_post_meta
. Я пытаюсь вставить данные в новый столбец, который я сделал в PHPMyAdmin. Я назвал колонку post_amount
. Имя поля - amount_field
. Хотя я новичок, что-то о «просто используйте update_post_meta
», которое я прочитал, кажется слишком простым, чтобы быть всем, что мне нужно. Но я могу ошибаться. Может быть, я использую это неправильно?Wordpress: update_post_meta не работает
Примечание - вся эта попытка связана с тем, что я хочу создать новый столбец в таблице wp_posts и добавлять к нему данные с каждым сообщением. Это даже правильный способ сделать это? Я вижу слова «meta_key» и «meta_value», и это заставляет меня думать, что на самом деле это приведет к добавлению данных в таблицу wp_postmeta .... или это предназначение?
$question_array = array(
'post_title' => $fields['title'],
'post_author' => $user_id,
'post_content' => apply_filters('ap_form_contents_filter', $fields['description']),
'post_type' => 'question',
'post_status' => $status,
'comment_status' => 'open',
);
if(isset($fields['parent_id']))
$question_array['post_parent'] = (int)$fields['parent_id'];
$question_array = apply_filters('ap_pre_insert_question', $question_array);
$post_id = wp_insert_post($question_array);
$post_amount = $fields['amount_field']; //My code
update_post_meta($post_id, 'post_amount', $post_amount); //My code
Подождите, я смущен. Я думал, что когда вы используете '$ post_id = wp_insert_post ($ question_array)', если вставка прошла успешно, то 'wp_insert_post' возвращает идентификатор сообщения. Поэтому он хранится в '$ post_id'. Я увидел это в ответе на этот вопрос: http://stackoverflow.com/questions/19191254/wordpress-update-post-meta-and-get-post-meta. Вы говорите, что мой пост не вставлен успешно? Потому что я смотрю в PHPMyAdmin, и я вижу, что он появляется там. – DarthVoid
Да, вы правы. Попробуйте 'add_post_meta' вместо' update_post_meta'. Я имел в виду, что 'update_post_meta' работает, когда есть существующий' ID' сообщения. Иногда новый meta не обновляется с помощью 'update_post_meta'. Он должен работать, если вы используете 'add_post_meta'. –
Он все еще не работает. [Взгляните на это изображение] (http://imgur.com/HNzOF7s) - столбец по-прежнему не заполняется данными. Что может быть причиной этого? Что я должен проверить? – DarthVoid