2014-12-02 42 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

但是,当我尝试更新编wp_update_post()职位,它似乎不更新后,就像我点击发布按钮,因为它没有插入meta_key和meta_value自定义字段键。数据库只包含1行,我使用add_post_meta()时添加了自定义字段的实际值。

任何人都知道如何解决这个问题?

+0

要更新后期元,必须使用'update_post_meta'。你尝试过'update_post_meta($ post_id,'Meta_key','Meta_value');'? – 2014-12-03 06:16:13

+0

是的,我尝试update_post_meta ...仍然不工作 – Gustav 2014-12-03 14:30:40

回答

0

当我必须做你所描述的,我使用acf插件。

首先我创建一个帖子类别,然后为该类别设置一个acf字段组。

之后,我使用与您相同的方法,但我在$ my_post var中指定了正确的类别。当帖子创建并归类时,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);