建议为对象类型和对象子类型的特定组合注册元键。如果省略传递对象子类型,则将为整个对象类型注册元键,但如果同一对象类型和子类型存在同名的更具体的元键,则可以部分覆盖该元键。
如果对象类型不支持任何子类型,例如用户或注释,则通常应调用此函数而不传递子类型。
$对象类型
一串必修的对象元数据的类型为。接受'发布'
,'注释'
,“术语”
,“用户”
,或具有关联元表的任何其他对象类型。
$元键
一串必修的要注册的元键。
$个参数
阵列必修的注册时用于描述元密钥的数据。
对象_子类型
一串A亚型;例如,如果对象类型为“post”,则为post类型。如果保留为空,则元密钥将在整个对象类型上注册。默认为空。
类型
一串与此元键关联的数据类型。
有效值为'字符串'
,“布尔值”
,'整数'
,“数字”
,“数组”
、和'对象'
.
描述
一串附加到此元键的数据的描述。
单一的
布尔元键是每个对象有一个值,还是每个对象有值数组。
违约
混合的从返回的默认值获取元数据()如果尚未设置值。使用非单一元键时,默认值为第一个条目。换句话说,在打电话时获取元数据()具有单个$
设置为假
,此处给定的默认值将封装在数组中。
清理回调
可调用的清理时要调用的函数或方法$元键
数据。
授权回调
可调用的可选。执行edit_post_meta、add_post_meta和delete_post_meta功能检查时要调用的函数或方法。
显示_重置
bool|数组与此元密钥相关联的数据是否可以被视为公共数据,并且应该通过RESTAPI进行访问。自定义帖子类型还必须声明支持通过REST访问已注册元数据的自定义字段。
当注册复杂的元值时,此参数可以是一个数组'架构'
或'准备回调'
键而不是布尔值。
修订_启用
布尔是否为此meta_key启用修订支持。仅当对象类型为“发布”
.
$已弃用
一串|阵列可选择的已弃用。使用$个参数
而不是。
违约:无效的
布尔如果元密钥已在全局数组中成功注册,则为True,否则为false。
使用不同的清理和身份验证回调注册元键将触发这些回调,但不会添加到全局注册表中。
函数register_meta($object_type,$meta_key,$args,$deprecated=null){全局$wp_meta_keys;if(!is_array($wp_meta_keys)){$wp_meta_keys=数组();}$defaults=数组(“object_subtype”=>“”,“type”=>“string”,“描述”=>“”,“默认”=>“”,“single”=>错误,“sanitize_callback”=>空,“auth_callback”=>空,“show_in_rest”=>假,“revisions_enabled”=>错误,);//过去有单独的参数用于清理和授权回调。$has_old_sanitize_cb=假;$has_old_auth_cb=假;if(is_callable($args)){$args=阵列(“sanitize_callback”=>$args,);$has_old_sanitize_cb=真;}其他{$args=(阵列)$args;}if(is_callable($已弃用)){$args['auth_callback']=不推荐使用$;$has_old_auth_cb=真;}/***在注册元数据时筛选注册参数。**@自4.6.0起**@param array$args元注册参数的数组。*@param array$defaults默认参数的数组。*@param string$object_type对象元数据的类型适用于。接受“帖子”、“评论”、“术语”、“用户”、,*或具有关联元表的任何其他对象类型。*@param string$meta_key元键。*/$args=应用过滤器('register_meta_args',$args,$defaults,$object_type,$meta_key);未设置($defaults['default']);$args=wp_parse_args($args,$defaults);//注册数组元时需要项架构。if(false!==$args['show_in_rest']&&'array'===$args['type']){if(!is_array($args['show_in_rest'])||!isset($args['show_in_rest']['schema']['项']){_doing_it_wrong(__FUNCTION__,__('注册“数组”元类型以显示在REST API中时,必须在“show_in_REST.schema.items”.'),'5.3.0'中指定每个数组项的模式);返回false;}}$object_subtype=!空($args['object_subtype'])$args['object_subtype']:'';if($args['revisions_enabled']){if('post'!==$object_type){_doing_it_wrong(__FUNCTION__,__('元键无法启用修订支持,除非对象类型支持修订。'),'6.4.0');返回false;}elseif(!空($object_subtype)&&!post_type_supports($object_subtype,“修订”){_doing_it_wrong(__FUNCTION__,__('元键无法启用修订支持,除非对象子类型支持修订。'),'6.4.0');返回false;}}//如果未提供“auth_callback”,请回退到“is_protected_meta()”。if(空($args['auth_callback']){if(is_protected_meta($meta_key,$object_type)){$args['auth_callback']='__return_false';}其他{$args['auth_callback']='__return_true';}}//Back-compat:旧的清理和身份验证回调应用于所有对象类型。if(is_callable($args['sanitize_callback']){if(!空($object_subtype)){添加过滤器(“清理{$object_type}_meta_{$meta_key}_for_{$obobject_subtype}”,$args['sanitize_callback'],10,4);}其他{add_filter(“清理{$object_type}_meta{$meta_key}”,$args['sanitize_callback'],10,3);}}if(is_callable($args['auth_callback'])){if(!空($object_subtype)){添加过滤器(“身份验证{$object_type}_meta_{$meta_key}_for_{$obobject_subtype}”,$args['auth_callback'],10,6);}其他{添加过滤器(“auth_{$object_type}_meta_{$meta_key}”,$args['auth_callback'],10,6);}}if(array_key_exists('default',$args)){$schema=$args;if(is_array($args['show_in_rest'])&&isset($args['show _in_lest']['schema'])){$schema=数组合并($schema,$args['show_in_rest']['schema']);}$check=rest_validate_value_from_schema($args['default'],$schema);if(iswp_error($check)){_doing_it_wrong(__FUNCTION__,__('注册默认元数据时,数据必须与提供的类型匹配。'),'5.5.0');返回false;}if(!has_filter(“默认{$object_type}_metadata”,'filter_default_metadata')){add_filter(“default_{$object_type}_metadata”,“filter_default_metadata”,10,5);}}//全局注册表仅包含使用4.6.0中添加的参数数组注册的元键。if(!$has_old_auth_cb&&!$has _old_sanitize_cb){unset($args['object_subtype']);$wp_meta_keys[$对象类型][$对象子类型][$meta_key]=$args;返回true;}返回false;}
查看所有引用 在Trac上查看 在GitHub上查看