Функция SANITIZE_META() в WordPress: очистка значений метаданных, примеры использования

Функция 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, понимание и применение этой функции позволит вам эффективно управлять метаданными.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *