sanitize_meta()WP 3.1.3

Очищает значение мета данных. Сама функция ничего не делает, а примеряет фильтр "sanitize_{$meta_type}_meta_{$meta_key}", через который разные мета данные можно очистить по-разному.

Эта функция используется во всех функциях при добавлении/обновлении метаданных WordPress: update_*_meta() или add_*_meta() — update_post_meta(), update_term_meta(), update_user_meta(), update_comment_meta()

Возвращает

Разное. Обработанное значение метаполя.

Использование

sanitize_meta( $meta_key, $meta_value, $object_type, $object_subtype );
$meta_key(строка) (обязательный)
Ключ метаполя. Используется в названии фильтра, на основе которого проводится очистка значения $meta_value.
$meta_value(смешанный) (обязательный)
Значение, которое нужно очистить.
$object_type(строка) (обязательный)
Тип метаданных. Может быть: comment, post, user, term. Используется в названии фильтра, на основе которого проводится очистка значения $meta_value.
$object_subtype(строка)
Тип объекта для которого создано метаполе. Например, post. Если передается пустая строка, то это значит что метаполе зарегистрировано для любого объекта. Смотрите одноименный параметр в функции register_meta().

Примеры

0

#1 Пример очистки произвольного мета поля, произвольной функцией.

// добавляем свою функцию очистки
add_filter( 'sanitize_user_meta_birth-year', 'sanitize_birth_year_meta' );

function sanitize_birth_year_meta( $year ) {
	$now = date( 'Y' );
	$then = $now - 50; // Пользователь не старше 50 лет

	if ( $then > $year || $year > $now )
		wp_die( 'Не корректный ввод, вернитесь назад и попробуйте снова.' );

	return $year;
}

// очищаем значение через добавленную функцию, где-то в другом файле...
$clean_value = sanitize_meta( 'birth-year', $user_input, 'user' );

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

С версии 3.1.3 Введена.
С версии 4.9.8 The $object_subtype parameter was added.

Код sanitize_meta() WP 6.5.2

function sanitize_meta( $meta_key, $meta_value, $object_type, $object_subtype = '' ) {
	if ( ! empty( $object_subtype ) && has_filter( "sanitize_{$object_type}_meta_{$meta_key}_for_{$object_subtype}" ) ) {

		/**
		 * Filters the sanitization of a specific meta key of a specific meta type and subtype.
		 *
		 * The dynamic portions of the hook name, `$object_type`, `$meta_key`,
		 * and `$object_subtype`, refer to the metadata object type (comment, post, term, or user),
		 * the meta key value, and the object subtype respectively.
		 *
		 * @since 4.9.8
		 *
		 * @param mixed  $meta_value     Metadata value to sanitize.
		 * @param string $meta_key       Metadata key.
		 * @param string $object_type    Type of object metadata is for. Accepts 'post', 'comment', 'term', 'user',
		 *                               or any other object type with an associated meta table.
		 * @param string $object_subtype Object subtype.
		 */
		return apply_filters( "sanitize_{$object_type}_meta_{$meta_key}_for_{$object_subtype}", $meta_value, $meta_key, $object_type, $object_subtype );
	}

	/**
	 * Filters the sanitization of a specific meta key of a specific meta type.
	 *
	 * The dynamic portions of the hook name, `$meta_type`, and `$meta_key`,
	 * refer to the metadata object type (comment, post, term, or user) and the meta
	 * key value, respectively.
	 *
	 * @since 3.3.0
	 *
	 * @param mixed  $meta_value  Metadata value to sanitize.
	 * @param string $meta_key    Metadata key.
	 * @param string $object_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( "sanitize_{$object_type}_meta_{$meta_key}", $meta_value, $meta_key, $object_type );
}