# REGISTER_POST_META() │ WP 4.9.8
Функция register_post_meta() регистрирует мета-ключ для записей (настраиваемое поле записи). Это удобная оболочка для функции register_meta, которая позволяет легко регистрировать мета-поля для записей.
Чтобы сделать то же самое для таксономий, вы можете использовать register_term_meta.
Зарегистрированные мета-поля хранятся в глобальном массиве $wp_meta_keys.
**Время выполнения:**
1 раз — 0.000126 сек (быстро)
50000 раз — 0.27 сек (очень быстро)
PHP 7.1.11, WP 4.9.8
**Заметки:**
У функции нет хуков.
## Что возвращает
Функция возвращает true, если мета-ключ был успешно зарегистрирован, и false, если это не удалось.
## Использование
Для регистрации мета-ключа используется следующий синтаксис:
```php
register_post_meta( $post_type, $meta_key, $args );
$post_type(string, обязательный) — тип записи, для которого регистрируется мета-ключ. Если передать пустую строку, мета-ключ будет зарегистрирован для всех существующих типов записей.$meta_key(string, обязательный) — сам мета-ключ, который вы хотите зарегистрировать.$args(array, обязательный) — массив данных, который описывает мета-ключ при регистрации. Для получения списка поддерживаемых аргументов смотритеregister_meta.
Примеры
Пример 1: Регистрация мета-поля только для страниц
register_post_meta( 'page', 'my_meta_key', [
// Доступен в REST ответе
'show_in_rest' => true,
// Обработка значения поля при сохранении в базу данных
'sanitize_callback' => 'absint',
] );
Теперь мета-поле с ключом my_meta_key будет зарегистрировано только для страниц.
Вы также можете сделать то же самое, используя register_meta, вот так:
register_meta( 'post', 'my_meta_key', [
'object_subtype' => 'page', // тип записи
'show_in_rest' => true,
'sanitize_callback' => 'absint',
] );
Пример 2: Другой пример
Вы можете посмотреть на странице функции register_meta для получения дополнительных примеров и тонкостей использования.
Пример 3: Заметка для редактора Gutenberg
Чтобы мета-поля, зарегистрированные таким образом, работали в редакторе блоков, убедитесь, что вы указали custom-fields в массиве supports при регистрации типа записи:
register_post_type( 'book', [
...
'supports' => [ 'title', 'editor', 'custom-fields', ... ],
...
] );
Изменения
С версии 4.9.8 — функция была введена.
Код функции register_post_meta
Файл: wp-includes/post.php
function register_post_meta( $post_type, $meta_key, array $args ) {
$args['object_subtype'] = $post_type;
return register_meta( 'post', $meta_key, $args );
}
Связанные функции
Расширения WP
add_theme_support()— добавляет поддержку темы.register_post_status()— регистрирует статус записи.register_post_type()— регистрирует тип записи.register_taxonomy()— регистрирует таксономию.register_term_meta()— регистрирует мета-ключ для таксономии.wp_install_defaults()— устанавливает значения по умолчанию.
Метаданные (любой)
add_comment_meta()— добавляет метаданные к комментарию.add_metadata()— добавляет метаданные.add_post_meta()— добавляет метаданные к записи.add_term_meta()— добавляет метаданные к термину.add_user_meta()— добавляет метаданные к пользователю.delete_comment_meta()— удаляет метаданные коммента.delete_metadata()— удаляет метаданные.delete_post_meta()— удаляет метаданные записи.delete_term_meta()— удаляет метаданные термина.delete_user_meta()— удаляет метаданные пользователя.get_comment_meta()— получает метаданные коммента.get_metadata()— получает метаданные.get_post_custom()— получает пользовательские метаданные записи.get_post_meta()— получает метаданные записи.get_term_meta()— получает метаданные термина.get_user_meta()— получает метаданные пользователя.is_protected_meta()— проверяет, является ли мета защищенным.register_meta()— регистрирует мета-данные.sanitize_meta()— очищает метаданные.update_post_meta()— обновляет метаданные записи.update_term_meta()— обновляет метаданные термина.update_user_meta()— обновляет метаданные пользователя.