Регистрация мета-ключа для записей в WordPress: register_post_meta()【SEO 60 символов】.

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

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *