is_protected_meta()
Проверяет указанный ключ метаполя, не является ли он защищенным (внутренним).
По умолчанию в WordPress используется такая логика: если название метаполя начинается с нижнего подчеркивания _
, например _edit_time
, то такое метаполе считается защищенным - используется для внутренних целей движка. Такие защищенные метаполя не выводятся в блоке метаполей при редактировании записи.
1 раз — 0.00001 сек (скорость света) | 50000 раз — 0.03 сек (скорость света) | PHP 7.0.8, WP 4.6
Хуки из функции
Возвращает
true|false
. Защищенное метаполе или нет.
Использование
if( is_protected_meta( $meta_key, $meta_type ) ){ // защищенное поле }
- $meta_key(строка) (обязательный)
- Ключ метаполя, которое нужно проверить.
- $meta_type(строка/null)
- Типа метаполя. Может быть:
post
,user
,comment
,term
.
По умолчанию: null
Примеры
#1 Проверим метаполе, не является ли оно защищенным
$meta_key = '_my_metakey'; if( is_protected_meta( $meta_key, 'post' ) ){ echo 'Защищенное поле'; }
Список изменений
С версии 3.1.3 | Введена. |
Код is_protected_meta() is protected meta WP 6.7.1
function is_protected_meta( $meta_key, $meta_type = '' ) { $sanitized_key = preg_replace( "/[^\x20-\x7E\p{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 '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 ); }