# 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()
— обновляет метаданные пользователя.