2014-12-02 2 views
0

У меня проблема на моем сайте WordPress. У меня есть несколько сообщений, которые были прогейми:Обновление сообщения Wordpress, не работающего с add_post_meta

$post_id= wp_insert_post($post); 

После этого, я хочу добавить пользовательское поле в это новое созданное сообщение. Поэтому я использую:

add_post_meta($post_id, 'Meta_key', 'Meta_value'); 

Это хорошо работает, сообщение создается, и значение настраиваемого поля вводится правильно в сообщении. Однако кажется, что на передней панели не отображается содержимое моего настраиваемого поля, потому что пользовательское поле, похоже, не создается. Единственный способ, с помощью которого я могу заставить его работать, - это продолжить публикацию и нажать кнопку публикации.

Делая это, я видел в БД, что он добавляет meta_key _nameofmycustumfield и meta_value с настраиваемым полем ключа: field_545ba53261f65.

Но когда я пытаюсь обновить prog сообщение wp_update_post(), кажется, что не обновляет сообщение, как если бы я нажимал кнопку публикации, потому что он не вставляет meta_key и meta_value с помощью настраиваемого ключа поля. БД содержит только 1 строку с реальным значением моего настраиваемого поля, которое я добавляю при использовании add_post_meta().

Кто-нибудь знает, как решить эту проблему?

+0

Чтобы обновить сообщение meta', вы должны использовать 'update_post_meta'. Вы пробовали 'update_post_meta ($ post_id, 'Meta_key', 'Meta_value');'? –

+0

Да, я попробовал update_post_meta ... все еще не работает – Gustav

ответ

0

Когда мне нужно делать то, что вы описали, я использую плагин acf.

Сначала я создаю категорию сообщения, затем я настраиваю группу полей acf для этой категории.

После этого я использую тот же метод, что и вы, но я указываю правильную категорию в переменной $ my_post. Когда создается сообщение и присваивается категория, acf создает правильные метаполя. Затем я обновляю нужные значения.

// Create post object 
$my_post = array(
    'post_title' => $title, 
    'post_content' => '', 
    'post_status' => 'publish', 
    'post_author' => 1, 
    'post_category' => array(5) 
); 

// Insert the post into the database 
$my_ID = wp_insert_post($my_post); 

update_post_meta($my_ID, 'first-name', $fname); 
Смежные вопросы