根据日志 ID 来更新自定义字段。使用 $prev_value 参数来区分同样的 key 和日志 ID 的自定义字段。
如果指定的 $meta_key 不存在,则添加这个自定义字段。
用法
<?php update_post_meta($post_id, $meta_key, $meta_value, $prev_value); ?>
参数
$post_id
(integer) (required) 将要更新自定义字段的日志 ID。
Default: None
$meta_key
(string) (required) 将要更新自定义字段的名称(key)。
Default: None
$meta_value
(mixed) (required) 自定义字段的新值,如果是一个数组,将会被序列化成字符串。
Default: None
$pre_value
(boolean) (optional) 将要修改的自定义字段原来的值,这是用来区分相同 key 的几个字段,如果省略了,则当前日志下指定 key 的多个值都将被更新。
Default: Empty
返回值
(mixed)
如果 meta 不存在,返回 meta_id,否则更新成功返回 true,失败返回 false。
注意:如果传递过去的 meta_value 和数据库中现有的是相同的话,也会返回错误。
实例
基本用法
<?php update_post_meta(76, 'my_key', 'Steve'); ?>
其他实例
假设一个 ID 为 76 的日志,有下面四个自定义字段:
[key_1] => 'Happy'
[key_1] => 'Sad'
[key_2] => 'Gregory'
[my_key] => 'Steve'
将 key_2 的值修改成 'Hans':
<?php update_post_meta(76, 'key_2', 'Hans'); ?>
将 key_1 的值从 'Sad' 修改成 'Happy':
<?php update_post_meta(76, 'key_1', 'Happy', 'Sad'); ?>
现在的字段将如下所示:
[key_1] => 'Happy'
[key_1] => 'Happy'
[key_2] => 'Hans'
[my_key] => 'Steve'
修改页面模板
<?php
update_post_meta($id, "_wp_page_template", "new_template.php");
?>
注解
这个可以用来代替 add_post_meta(),update_post_meta() 首先会检查指定的 $post_id 的 $meta_key 是否已经存在,如果不存在,则会调用 add_post_meta($post_id, $meta_key, $meta_value),并返回其结果。
如果 meta 不存在,返回 meta_id,否则更新成功返回 true,失败返回 false,如果传递过去的 meta_value 和数据库中现有的是相同的话,也会返回错误。
修改记录
Since 1.5.0
源文件
wp-includes/post.php