Функция register_term_meta()
регистрирует метаполе (meta key) для определённой таксономии. Это упрощённая обёртка для функции register_meta()
, которая позволяет удобно добавлять пользовательские метаполя для терминов таксономий в WordPress.
register_term_meta( string $taxonomy, string $meta_key, array $args ): bool
Описание
Используя register_term_meta()
, вы можете зарегистрировать метаполя для таксономий, которые будут храниться в базе данных и доступны для работы через REST API. Это полезно, когда вы хотите добавить дополнительные данные к терминам (например, категориям или тегам) и использовать эти данные в админ-панели или на фронтенде.
Параметры
- $taxonomy (string) (обязательный): Таксономия, для которой регистрируется метаполе. Если указать пустую строку, метаполе будет зарегистрировано для всех существующих таксономий.
- $meta_key (string) (обязательный): Имя метаполя (ключ), которое необходимо зарегистрировать.
- $args (array) (обязательный): Массив аргументов, описывающих свойства метаполя. Этот массив аналогичен аргументам функции
register_meta()
.
Аргументы массива $args
- type (string): Тип данных метаполя. По умолчанию —
string
. - description (string): Описание метаполя. По умолчанию — пустая строка.
- single (bool): Определяет, будет ли поле одноэлементным (true) или многозначным (false). По умолчанию —
false
. - sanitize_callback (callable): Функция для обработки (очистки) данных перед сохранением. По умолчанию —
null
. - auth_callback (callable): Функция для проверки прав доступа к метаполю. По умолчанию —
null
. - show_in_rest (bool|array): Определяет, будет ли метаполе отображаться в REST API. По умолчанию —
false
.
Возвращаемое значение
- bool: Возвращает
true
, если метаполе было успешно зарегистрировано, илиfalse
— если регистрация не удалась.
Пример 1: Регистрация метаполя для таксономии «shelves»
В этом примере мы регистрируем метаполе с именем my_meta_key
для таксономии shelves
. Мы также добавляем это поле в ответ REST API и обрабатываем его с помощью функции absint()
перед сохранением.
register_term_meta( 'shelves', 'my_meta_key', array(
'show_in_rest' => true, // Добавляем поле в REST API
'sanitize_callback' => 'absint', // Обрабатываем значение через absint()
));
Пример 2: Использование register_meta()
для регистрации метаполя
Тот же результат можно достичь с помощью функции register_meta()
, указав тип объекта как term
и указав конкретную таксономию в параметре object_subtype
:
register_meta( 'term', 'my_meta_key', array(
'object_subtype' => 'shelves', // Таксономия
'show_in_rest' => true,
'sanitize_callback' => 'absint',
));
Пример 3: Расширенное использование параметра show_in_rest
В этом примере мы регистрируем метаполе для таксономии replica
с расширенными настройками для REST API. Метаполе добавляется в REST API и описывается в запросе OPTIONS, включая контекст (view, edit) и формат данных.
register_term_meta( 'replica', 'nice_field', array(
'type' => 'string',
'description' => 'a nice description',
'single' => true,
'show_in_rest' => array(
'schema' => array(
'type' => 'string',
'format' => 'url',
'context' => array( 'view', 'edit' ),
'readonly' => true,
)
),
));
Когда использовать
Функция register_term_meta()
полезна, если вам нужно добавить дополнительные данные к терминам в вашей системе таксономий и управлять этими данными через интерфейсы WordPress и REST API. Например, вы можете добавлять пользовательские поля к категориям продуктов в интернет-магазине или дополнительную информацию к тегам постов в блоге.
Возможные сценарии использования:
- Добавление пользовательских полей к терминам таксономий.
- Интеграция пользовательских метаполей с REST API для фронтенд-приложений.
- Обработка данных терминов с помощью кастомных функций для валидации и очистки данных перед сохранением.
Заключение
register_term_meta()
— это удобная функция для регистрации метаполей для таксономий в WordPress. Она предоставляет гибкость при работе с пользовательскими данными и легко интегрируется с REST API.