is_protected_meta()WP 3.1.3

Проверяет указанный ключ метаполя, не является ли он защищенным (внутренним).

По умолчанию в 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

Примеры

0

#1 Проверим метаполе, не является ли оно защищенным

$meta_key = '_my_metakey';
if( is_protected_meta( $meta_key, 'post' ) ){
	echo 'Защищенное поле';
}

Список изменений

С версии 3.1.3 Введена.

Код 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 );
}