add_post_meta()
可以很容易地添加元数据。 该函数接受一个 post_id
,一个 meta_key
,一个 meta_value
和一个唯一的标志。
- meta_key是你的插件如何引用代码中的其他地方的元值。
- meta_value可以是字符串,整数或数组。 如果它是一个数组,它将被自动序列化,然后被存储在数据库中。
- 唯一标志允许你声明该键是否是唯一的。
更新元数据
如果一个元数据已经存在,并且要更新,请使用 update_post_meta()
。 当键不存在时, update_post_meta()
将创建它,就像使用 add_post_meta()
一样。与 add_post_meta()
类似,该函数接受一个 post_id
,一个 meta_key
,一个 meta_value
和一个唯一的标志。
删除元数据
delete_post_meta()
接受一个 post_id
,一个 meta_key
和可选的 meta_value
。
去除斜扛
元数据被存储时通过 stripslashes()
函数,可以删除由 addslashes()
等函数添加的反斜杠。
$escaped_json = '{"key":"value with \"escaped quotes\""}';
update_post_meta($id, 'escaped_json', $escaped_json);
$broken = get_post_meta($id, 'escaped_json', true);
/*
$broken, after stripslashes(), ends up unparsable:
{"key":"value with "escaped quotes""}
*/
添加斜扛
通过使用函数wp_slash()(在WP 3.6中引入)向字符串或字符串数组添加斜杠。
$escaped_json = '{"key":"value with \"escaped quotes\""}';
update_post_meta($id, 'double_escaped_json', wp_slash($escaped_json));
$fixed = get_post_meta($id, 'double_escaped_json', true);
/*
$fixed, after stripslashes(), ends up as desired:
{"key":"value with \"escaped quotes\""}
*/
隐藏的自定义字段
如果您是插件或主题开发人员,并且您打算使用自定义字段来存储参数,请务必注意,WordPress不会显示自定义字段,该自定义字段在自定义字段列表中以“_”(下划线)开头。可以通过使用 add_meta_box()
函数以异常的方式显示这些自定义字段。
下面的示例将添加一个唯一的自定义字段与meta_key名称“_color”和meta_value“红色”,但此自定义字段不会显示在后编辑屏幕中:
add_post_meta(68, '_color', 'red', true);
隐藏数组
另外,如果meta_value是一个数组,它不会显示在页面上,即使不使用下划线的meta_key名称前缀。