添加元数据

添加元数据很容易完成 add_post_meta()。该功能接受post_id,Ameta_key,Ameta_value,一个unique旗帜。

meta_key您的插件将如何将代码其他位置的元值引用。就像是mycrazymetakeyname但是,将有效,但是与您的插件或主题相关的前缀,然后对密钥的描述更有用。wporg_featured_menu可能是一个好人。应该注意的是一样meta_key可以多次使用来存储元数据的变化(请参见下面的唯一标志)。

meta_value可以是字符串,整数或数组。如果是一个数组,则将在存储数据库之前自动将其序列化。

unique标志允许您声明此密钥是否应该是唯一的。A 唯一的密钥是帖子可以具有多种变体,例如价格。
如果你只想要 帖子的价格,您应该标记uniquemeta_key只有一个值。

更新元数据

如果键已经存在并且要更新,请使用 update_post_meta()。如果您使用此功能并且密钥确实 不是 存在,然后会创建它,好像您使用了 add_post_meta()

如同 add_post_meta(),该功能接受post_id,Ameta_key,和meta_value。它也接受可选prev_value – 如果指定,则该功能将仅更新具有此值的现有元数据条目。如果未提供,则默认功能将更新所有条目。

删除元数据

delete_post_meta()post_id,Ameta_key,并且可选meta_value。它确实可以做名字所暗示的。

角色逃脱

元元值通过 stripslashes() 运行后的功能,因此在传递值(例如JSON)时,您需要小心,其中可能包括逃脱字符。

考虑JSON值{"key":"value with \"escaped quotes\""}

$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中引入),您可以补偿呼叫 stripslashes()

$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不会显示具有的自定义字段meta_key从“ _”(下划线)开始,在邮政编辑屏幕上的自定义字段列表中或使用 the_meta() 模板功能。

这对于通过使用 add_meta_box() 功能。

下面的示例将添加一个独特的自定义字段meta_key命名“ _Color”和meta_value“红色”,但此自定义字段不会在“邮政编辑”屏幕上显示:

add_post_meta( 68, '_color', 'red', true );

隐藏的数组

另外,如果meta_value是一个数组,即使您不前缀,它也不会在页面编辑屏幕上显示meta_key姓名下划线。

By zhuon

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注