管理文章元数据

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名称前缀。