【问题标题】:Updating a Wordpress post not working with add_post_meta更新不使用 add_post_meta 的 Wordpress 帖子
【发布时间】:2015-01-30 20:50:31
【问题描述】:

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

有人知道如何解决这个问题吗?

【问题讨论】:

  • update post meta,你必须使用update_post_meta。你试过update_post_meta( $post_id, 'Meta_key', 'Meta_value' );吗?
  • 是的,我尝试过 update_post_meta... 仍然无法正常工作

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


【解决方案1】:

当我必须做你描述的事情时,我会使用 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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-13
    • 1970-01-01
    • 2014-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-03
    相关资源
    最近更新 更多