Описание функции register_meta()
Функция register_meta() регистрирует метаданные для пользовательских типов контента, таких как посты, страницы и таксономии. Она предоставляет возможность задать параметры, такие как доступность для REST API и возможность задания значений по умолчанию. Это позволяет более эффективно управлять метаданными и обеспечивает их безопасность и доступность.
Функция используется в основном разработчиками плагинов и тем для расширения функциональности WordPress и создания настраиваемых решений.
Параметры
$meta_key
Тип: string
Обязательный: Да
Описание: Ключ метаданных, который будет использоваться для сохранения данных
Возможные значения:
$object_type
Тип: string|array
Обязательный: Да
По умолчанию: »
Описание: Тип объекта, к которому будут привязаны метаданные (например, ‘post’, ‘user’, ‘term’)
Возможные значения:
0: ‘post’
1: ‘user’
2: ‘term’
3: Массив этих значений
$args
Тип: array
Обязательный: Нет
По умолчанию: array()
Описание: Массив дополнительных аргументов для определения поведения метаданных
Возможные значения:
show_in_rest: 1,
single: 1,
type: string (например, ‘string’, ‘integer’, ‘boolean’)
sanitize_callback: Функция для валидации входных данных
auth_callback: Функция для проверки прав доступа
Возвращаемое значение
Тип: void
Описание: Функция ничего не возвращает, но регистрирует метаданные для использования в WordPress
Возможные значения:
Примеры использования
Регистрация метаданных ‘user_bio’ для постов.
register_meta('post', 'user_bio', array('single' => true, 'show_in_rest' => true));
Теперь можно использовать user_bio в REST API
Регистрация метаданных ‘twitter_handle’ для пользователей с функцией валидации
register_meta('user', 'twitter_handle', array('single' => true, 'sanitize_callback' => 'sanitize_text_field'));
Проверка на ввод некорректных данных
Регистрация метаданных ‘custom_field’ с проверкой прав доступа
register_meta('post', 'custom_field', array('auth_callback' => 'user_can_edit_post'));
Только авторизованные пользователи смогут редактировать это поле
Регистрация метаданных в контексте плагина
function my_plugin_register_meta() {
register_meta('post', 'my_custom_meta', array('single' => true, 'show_in_rest' => true));
}
add_action('init', 'my_plugin_register_meta');
Метаданные будут доступны после инициализации
Безопасность
Валидация входных данных: Функция принимает параметры, которые должны быть валидными и безопасными
Санитизация: Параметры очищаются с использованием функций валидации, если указаны
Рекомендации: Используйте sanitize_callback для защиты от XSS и других уязвимостей
— Связанные функции
Получает метаданные для поста
Обновляет метаданные для поста
— Примечания
– Ограничения
Нельзя зарегистрировать одно и то же метаданные несколько раз для одного типа объекта
– Частые проблемы
- Ошибка при неправильных типах аргументов
- Необходимость проверки прав доступа для кастомных метаданных