更新不使用add_post_meta的Wordpress帖子

时间:2014-12-02 14:52:02

标签: php wordpress custom-fields advanced-custom-fields

我的WordPress网站上有一个问题。我有几个由prog创建的帖子:

$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()通过prog更新帖子时,它似乎没有更新帖子,就像我点击发布按钮一样,因为它没有插入meta_key和带有自定义字段的meta_value键。数据库只包含一行,其中包含我在使用add_post_meta()时添加的自定义字段的实际值。

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

1 个答案:

答案 0 :(得分: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);