WordPress 函数:update_post_meta

根据日志 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