sanitize_meta

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

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

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

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

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

Примеры

#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' );

Код из


wp-includes/meta.php

WP 4.7.2

<?php
function sanitize_meta( $meta_key, $meta_value, $object_type ) {
	/**
	 * 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, or user) and the meta
	 * key value, respectively.
	 *
	 * @since 3.3.0
	 *
	 * @param mixed  $meta_value      Meta value to sanitize.
	 * @param string $meta_key        Meta key.
	 * @param string $object_type     Object type.
	 */
	return apply_filters( "sanitize_{$object_type}_meta_{$meta_key}", $meta_value, $meta_key, $object_type );
}