Функция register_meta()
в WordPress используется для регистрации метаданных для определенного типа объектов, таких как посты, термины, пользователи или комментарии. Регистрация метаданных позволяет задать параметры для их отображения и управления, что упрощает их использование в админ-панели и API.
bool register_meta( string $object_type, string $meta_key, array $args )
- $object_type (string) (обязательный): Тип объекта, к которому относятся метаданные. Возможные значения:
post
,term
,user
,comment
. - $meta_key (string) (обязательный): Ключ метаданных, который необходимо зарегистрировать.
- $args (array) (обязательный): Ассоциативный массив аргументов для настройки метаданных. Поддерживаемые ключи:
- ‘type’ (string): Тип данных метаданных. Возможные значения:
string
,boolean
,integer
,number
,array
,object
. - ‘description’ (string): Описание метаданных.
- ‘single’ (bool): Если true, метаданные хранятся как одно значение. Если false, могут храниться как массив значений.
- ‘sanitize_callback’ (callable): Функция для очистки значения метаданных перед сохранением.
- ‘auth_callback’ (callable): Функция для проверки прав доступа к метаданным.
- ‘show_in_rest’ (bool|array): Если true, метаданные доступны в REST API. Можно передать массив для более точной настройки.
- ‘type’ (string): Тип данных метаданных. Возможные значения:
Возвращаемое значение
Функция возвращает true
при успешной регистрации метаданных, иначе false
.
Примеры использования
Рассмотрим несколько примеров использования функции register_meta()
для различных типов объектов.
Пример 1: Регистрация метаданных для постов
Зарегистрируем метаданные с ключом subtitle
для постов:
function register_post_meta_subtitle() {
register_meta('post', 'subtitle', array(
'type' => 'string',
'description' => 'Подзаголовок поста',
'single' => true,
'sanitize_callback' => 'sanitize_text_field',
'show_in_rest' => true,
));
}
add_action('init', 'register_post_meta_subtitle');
Пример 2: Регистрация метаданных для пользователей
Зарегистрируем метаданные с ключом phone_number
для пользователей:
function register_user_meta_phone_number() {
register_meta('user', 'phone_number', array(
'type' => 'string',
'description' => 'Номер телефона пользователя',
'single' => true,
'sanitize_callback' => 'sanitize_text_field',
'auth_callback' => function() {
return current_user_can('edit_users');
},
'show_in_rest' => true,
));
}
add_action('init', 'register_user_meta_phone_number');
Пример 3: Регистрация метаданных для терминов
Зарегистрируем метаданные с ключом color
для терминов таксономии:
function register_term_meta_color() {
register_meta('term', 'color', array(
'type' => 'string',
'description' => 'Цвет термина',
'single' => true,
'sanitize_callback' => 'sanitize_hex_color',
'show_in_rest' => true,
));
}
add_action('init', 'register_term_meta_color');
Пример 4: Регистрация метаданных для комментариев
Зарегистрируем метаданные с ключом rating
для комментариев:
function register_comment_meta_rating() {
register_meta('comment', 'rating', array(
'type' => 'integer',
'description' => 'Рейтинг комментария',
'single' => true,
'sanitize_callback' => 'absint',
'auth_callback' => function() {
return current_user_can('moderate_comments');
},
'show_in_rest' => true,
));
}
add_action('init', 'register_comment_meta_rating');
Заключение
Функция register_meta()
является мощным инструментом для регистрации метаданных в WordPress. Она позволяет определить параметры метаданных, такие как тип данных, описание, возможность их отображения в REST API и многое другое. Правильное использование этой функции поможет вам структурировать данные, сделать их более управляемыми и доступными для использования как в админ-панели, так и через API.
Использование register_meta()
улучшает интеграцию пользовательских данных и расширяет возможности работы с метаданными в WordPress, что позволяет создавать более гибкие и мощные решения для вашего сайта.