Как добавить своё кастомное поле в WordPress REST API

WordPress REST API — мощный инструмент для создания современных веб-приложений на базе WordPress. Однако, по умолчанию в ответах API отсутствуют кастомные поля, которые часто необходимы для полноценной работы фронтенда или мобильного приложения. В этой статье мы подробно разберём, как добавить своё кастомное поле в REST API WordPress, чтобы получить доступ к дополнительным данным.

Почему кастомные поля не отображаются в REST API по умолчанию

Кастомные поля (custom fields) в WordPress хранятся в мета-данных поста. Они не включены в стандартный ответ REST API, так как это может привести к избыточности данных и потенциальным проблемам с безопасностью. Чтобы получить доступ к ним через API, их необходимо явно регистрировать.

Для безопасного и корректного добавления мета-данных в REST API используется функция register_meta() с параметром 'show_in_rest' => true. Это позволяет указать, какие поля должны быть доступны и как они должны обрабатываться.

Давайте рассмотрим, как это сделать на практике.

Регистрация кастомного поля для REST API на примере поля "wptavern_custom_field"

Предположим, у нас есть кастомное поле с ключом _wptavern_custom_field. Чтобы оно появилось в REST API, нужно зарегистрировать его следующим образом:

add_action('rest_api_init', 'wptavern_register_custom_field');
function wptavern_register_custom_field() {
    register_post_meta('post', '_wptavern_custom_field', [
        'show_in_rest' => true,
        'single' => true,
        'type' => 'string',
        'auth_callback' => function() {
            return current_user_can('edit_posts');
        }
    ]);
}

Здесь мы вызываем register_post_meta для типа записи post. Параметр show_in_rest позволяет включить поле в REST API. single => true означает, что поле хранит одно значение. auth_callback защищает поле, показывая его только авторизованным пользователям с правом редактирования постов.

После добавления этого кода и обновления страницы REST API, например /wp-json/wp/v2/posts, вы увидите поле _wptavern_custom_field в ответе.

Как получить и обновить кастомное поле через REST API

Значения кастомных полей можно обновлять через REST API, отправляя запросы POST или PATCH с полем в теле запроса:

{
  "_wptavern_custom_field": "Новое значение"
}

Важно, чтобы пользователь имел соответствующие права для изменения.

Добавление нескольких кастомных полей и использование в кастомных типах записей

Если у вас несколько кастомных полей, регистрируйте каждое отдельно с аналогичным подходом. Для кастомных типов записей замените 'post' на ваш тип записи, например 'wptavern_product'.

Пример регистрации двух полей для типа записи product:

add_action('rest_api_init', 'wptavern_register_product_meta');
function wptavern_register_product_meta() {
    register_post_meta('product', 'wptavern_price', [
        'show_in_rest' => true,
        'single' => true,
        'type' => 'number',
    ]);
    register_post_meta('product', 'wptavern_color', [
        'show_in_rest' => true,
        'single' => true,
        'type' => 'string',
    ]);
}

Это позволит получать и обновлять свойства продукта через API.

Использование плагинов для расширения возможностей REST API

Если вы не хотите писать код, есть плагины, которые облегчают работу с REST API и мета-данными:

  • ACF to REST API — расширяет REST API данными из Advanced Custom Fields (ACF).
  • WP REST API Controller — позволяет управлять видимостью полей в REST API через админку.

Однако, собственная регистрация мета-полей через код даёт больше контроля и безопасности.

Выводы и рекомендации по работе с кастомными полями в REST API

Подключение кастомных полей в REST API — важный шаг для создания гибких и функциональных приложений на WordPress. Основные рекомендации:

  • Всегда регистрируйте мета-поля с show_in_rest и продумывайте права доступа через auth_callback.
  • Используйте типы данных для правильной сериализации и валидации.
  • Для сложных структур используйте сериализацию JSON, но учитывайте производительность.
  • Тестируйте API с помощью инструментов Postman или встроенного REST API браузера WordPress.

Таким образом, добавляя кастомные поля в REST API, вы расширяете возможности взаимодействия с WordPress и делаете ваш сайт более современным и удобным для разработки.

Как разрешить доступ к файлам в WordPress через .htaccess
02.02.2026
Настройка AJAX-отправки для добавления товаров в корзину WooCommerce без ошибок
22.04.2026
Как добавить дополнительное логирование в WordPress для отладки
15.03.2026
Как добавить автоматическое обновление плагинов в WordPress без push-уведомлений
16.12.2025
Как добавить поддержку видео в пользовательский блок Gutenberg в WordPress
13.12.2025