register_post_meta() WP 4.9.8
Регистрирует метаполе (ключ произвольного поля) для постов.
Является обёрткой функции register_meta для удобной регистрации метаполей для постов.
Чтобы сделать тоже самое для таксономии, смотрите register_term_meta().
Работает на основе: register_meta()
1 раз — 0.000126 сек (быстро) | 50000 раз — 0.27 сек (очень быстро) | PHP 7.1.11, WP 4.9.8
Хуков нет.
Возвращает
true/false.
- true - если мета-ключ был успешно зарегистрирован в глобальном массиве $wp_meta_keys.
- false - если не удалось зарегистрировать ключ.
Использование
register_post_meta( $post_type, $meta_key, $args );
- $post_type(строка) (обязательный)
- Тип поста для которого регистрируется метаполе. Передайте пустую строку для регистрации мета-ключа для всех существующих типов постов.
- $meta_key(строка) (обязательный)
- Название ключа, который нужно зарегистрировать.
- $args(массив) (обязательный)
Данные описывающие метаполе. По умолчанию такие:
$args = array( 'type' => 'string', 'description' => '', 'single' => false, 'sanitize_callback' => null, 'auth_callback' => null, 'show_in_rest' => false, );
Описание каждого параметра смотрите в функции register_meta().
#1 Регистрация метаполя только для страниц
register_post_meta( 'page', 'my_meta_key', array( 'show_in_rest' => true, // Добавим в ответ REST 'sanitize_callback' => 'absint', // Обработаем значение поля при сохранение его в базу, функцией absint() ) );
Теперь метаполе c ключом 'my_meta_key' будет зарегистрировано только для страниц.
Тоже самое можно сделать с помощью register_meta(), так:
register_meta( 'post', 'my_meta_key', array( 'object_subtype' => 'page', // тип поста 'show_in_rest' => true, 'sanitize_callback' => 'absint', ) );
#2 Еще пример
Дополнительные примеры и нюансы использования смотрите на странице функции register_meta().
Список изменений
С версии 4.9.8 | Введена. |
Код register_post_meta() register post meta WP 5.6.2
function register_post_meta( $post_type, $meta_key, array $args ) {
$args['object_subtype'] = $post_type;
return register_meta( 'post', $meta_key, $args );
}