is_protected_meta()
云策文档标注
概述
is_protected_meta() 函数用于判断一个元数据键是否被视为受保护的。它基于键名是否以下划线开头来定义保护状态,并可通过过滤器进行自定义。
关键要点
- 函数接受两个参数:必需的 $meta_key(元数据键)和可选的 $meta_type(元数据类型,如 'post'、'user' 等)。
- 返回布尔值,表示元数据键是否受保护。
- 保护逻辑:去除非 ASCII 字符后,如果键名以 '_' 开头,则视为受保护。
- 提供 'is_protected_meta' 过滤器,允许开发者修改保护判断结果。
代码示例
function is_protected_meta( $meta_key, $meta_type = '' ) {
$sanitized_key = preg_replace( "/[^x20-x7Ep{L}]/", '', $meta_key );
$protected = strlen( $sanitized_key ) > 0 && ( '_' === $sanitized_key[0] );
return apply_filters( 'is_protected_meta', $protected, $meta_key, $meta_type );
}注意事项
- 元数据类型参数 $meta_type 是可选的,默认空字符串,支持 'blog'、'post'、'comment'、'term'、'user' 等类型。
- 函数自 WordPress 3.1.3 版本引入,常用于自定义字段管理、权限映射等场景。
原文内容
Determines whether a meta key is considered protected.
Parameters
$meta_keystringrequired-
Metadata key.
$meta_typestringoptional-
Type of object metadata is for. Accepts
'blog','post','comment','term','user', or any other object type with an associated meta table. Default empty string.
Source
function is_protected_meta( $meta_key, $meta_type = '' ) {
$sanitized_key = preg_replace( "/[^x20-x7Ep{L}]/", '', $meta_key );
$protected = strlen( $sanitized_key ) > 0 && ( '_' === $sanitized_key[0] );
/**
* Filters whether a meta key is considered protected.
*
* @since 3.2.0
*
* @param bool $protected Whether the key is considered protected.
* @param string $meta_key Metadata key.
* @param string $meta_type Type of object metadata is for. Accepts 'blog', 'post', 'comment', 'term',
* 'user', or any other object type with an associated meta table.
*/
return apply_filters( 'is_protected_meta', $protected, $meta_key, $meta_type );
}
Hooks
- apply_filters( ‘is_protected_meta’, bool $protected, string $meta_key, string $meta_type )
-
Filters whether a meta key is considered protected.
Changelog
| Version | Description |
|---|---|
| 3.1.3 | Introduced. |