gpt4 book ai didi

wordpress - wp_update_post 使自定义字段值消失(Wordpress)

转载 作者:行者123 更新时间:2023-12-01 13:01:36 25 4
gpt4 key购买 nike

我正在尝试通过 wp_update_post 函数更新我的一篇帖子中的帖子内容。我已阅读此处的文档:http://codex.wordpress.org/Function_Reference/wp_update_post

如果我做对了,我只需要发送帖子 ID 和我想要更新的帖子内容 - 就像在示例中一样 - 这应该是唯一会改变的东西。虽然我附加到这篇文章的自定义字段消失了,但很奇怪。

我传递了以下代码:

if(isset($_POST['submit'])){
$the_post = array();
$the_post['ID'] = $_POST['id'];
$the_post['post_content'] = $_POST['recension'];

// Update the post into the database
wp_update_post( $the_post );
}

这是怎么发生的,我该如何解决?

最佳答案

这是因为当您更新帖子时,会使用 *wp_insert_post* 函数,并且有“save_post”(1) 操作 Hook ,通常用于保存自定义字段数据。

添加/更新帖子元的标准方法是这样的:

$post_meta['_mymeta'] = $_POST['_mymeta'];

// Add values of $events_meta as custom fields

foreach ($events_meta as $key => $value) { // Cycle through the $post_meta array!
if( $post->post_type == 'revision' ) return; // Don't store custom data twice
if($value && $value != get_post_meta($post->ID, $key, TRUE)) { // If the custom field already has a value
update_post_meta($post->ID, $key, $value);
} elseif($value && get_post_meta($post_id, $key, TRUE) == "") { // If the custom field doesn't have a value
add_post_meta($post->ID, $key, $value, TRUE);
}
if(!$value) delete_post_meta($post->ID, $key, get_post_meta($post->ID, $key, TRUE)); // Delete if blank
}

...如您所见,它正在检查 *$_POST* 数据,如果它为空或未设置,它会用空数据更新您的元值或将其完全删除。

我想你应该使用 database update function或其他一些更新帖子字段的 API 函数...例如,这段代码将更新您的帖子菜单顺序:

$wpdb->update( $wpdb->posts, array( 'menu_order' => 5 ), array( 'ID' => $post->ID ) );

(1) 每当创建或更新帖子或页面时运行,这可能来自导入、帖子/页面编辑表单、xmlrpc 或通过电子邮件发布。 Action 函数参数:帖子 ID。

关于wordpress - wp_update_post 使自定义字段值消失(Wordpress),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5573230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com