Функция SANITIZE_META() в WordPress
Функция sanitize_meta() используется для очистки значений метаданных в WordPress. Эта статья объяснит, что такое метаданные, как правильно использовать данную функцию, а также покажет примеры её применения.
Что такое метаданные?
Метаданные — это данные о данных. В WordPress метаданные могут включать такие вещи, как дополнительная информация о постах, пользователях или комментариях. Например, у поста может быть метаданные, описывающие его автора, дату публикации и т.д.
Функция sanitize_meta()
Синтаксис
sanitize_meta( $meta_key, $meta_value, $object_type, $object_subtype = '' );
Параметры
- $meta_key (string) (обязательный) — Ключ метаданных. Это название, по которому вы будете идентифицировать значение.
- $meta_value (mixed) (обязательный) — Значение метаданных, которое нужно очистить.
- $object_type (string) (обязательный) — Тип объекта, для которого используются метаданные. Например, это может быть 'post' (пост), 'comment' (комментарий), 'term' (термин) или 'user' (пользователь).
- $object_subtype (string) — Подтип объекта. По умолчанию — пустая строка.
Возвращаемое значение
Функция возвращает очищенное значение метаданных ($meta_value).
Примеры использования
Пример 1: Очистка значения пользовательского поля
В этом примере мы очистим метаданные о годе рождения пользователя, используя пользовательскую функцию для валидации.
// Очищаем значение через добавленную функцию
$clean_value = sanitize_meta( 'birth-year', $user_input, 'user' );
// Добавляем нашу функцию для очистки
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;
}
Пример 2: Основное использование
Предположим, у вас есть метаданные для постов. Вы можете очистить данные следующим образом:
$clean_post_meta = sanitize_meta( 'post_custom_value', $user_input, 'post' );
Изменения в функции
- С версии 3.1.3 — функция была введена.
- С версии 4.9.8 — добавлен параметр
$object_subtype.
Связанные функции
Функция sanitize_meta() имеет несколько связа��ных функций, которые могут быть полезны:
sanitize_email()sanitize_file_name()sanitize_html_class()sanitize_text_field()- и многие другие.
Эти функции помогают очищать различные типы данных, что делает WordPress более безопасным и надежным.
Заключение
Функция sanitize_meta() — это мощный инструмент для очистки метаданных в WordPress. Правильное использование этой функции поможет поддерживать безопасность и целостность данных на вашем сайте. Если вы разработчик или пользователь WordPress, понимание и применение этой функции позволит вам эффективно управлять метаданными.