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

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

Почему важно добавлять владельца поста в REST API WordPress

Стандартный REST API WordPress возвращает авторский ID поста, но этого не всегда достаточно. Например, при создании фронтенд-приложения на React или Vue, где нужно отобразить имя автора или ссылку на его профиль, требуется расширить ответ API, добавив эти данные.

Добавление владельца поста в REST API позволяет:

  • Получить расширенную информацию об авторе без дополнительных запросов.
  • Упростить работу фронтенда и уменьшить количество запросов к серверу.
  • Улучшить кастомизацию и интеграцию REST API с внешними сервисами.

Как добавить поле владельца поста в REST API — пример на PHP

Для расширения REST API WordPress используется функция register_rest_field. Она позволяет добавить новое поле к объектам, которые возвращает API. Рассмотрим, как добавить поле post_owner, содержащее информацию об авторе поста.

Добавим следующий код в файл вашего плагина или functions.php темы:

add_action('rest_api_init', 'wpmeta_register_post_owner_field');
function wpmeta_register_post_owner_field() {
    register_rest_field(
        'post', // тип объекта
        'post_owner', // имя нового поля
        array(
            'get_callback' => 'wpmeta_get_post_owner_data',
            'schema' => null,
        )
    );
}

function wpmeta_get_post_owner_data($object) {
    $author_id = $object['author'];
    $user = get_userdata($author_id);
    if (!$user) {
        return null;
    }
    return array(
        'ID' => $user->ID,
        'display_name' => $user->display_name,
        'user_nicename' => $user->user_nicename,
        'profile_url' => get_author_posts_url($user->ID),
    );
}

Объяснение кода:

  • С помощью register_rest_field добавляем поле post_owner к типу записи post.
  • В колбэке wpmeta_get_post_owner_data получаем данные автора по ID, который приходит в объекте поста.
  • Возвращаем массив с нужной информацией: ID, отображаемое имя, никнейм и URL профиля.

Тестирование нового поля в REST API

После добавления кода обновите кеш и выполните запрос к REST API для получения поста, например:

https://your-site.ru/wp-json/wp/v2/posts/123

В ответе среди данных поста вы увидите новое поле post_owner с информацией об авторе:

{
  "id": 123,
  "date": "2024-06-01T12:00:00",
  // ... другие поля ...
  "author": 5,
  "post_owner": {
    "ID": 5,
    "display_name": "Иван Иванов",
    "user_nicename": "ivan-ivanov",
    "profile_url": "https://your-site.ru/author/ivan-ivanov"
  }
}

Дополнительные советы и расширения

Кеширование данных владельца

Если на сайте много запросов к REST API, рекомендуем кешировать данные автора, чтобы снизить нагрузку на базу данных. Можно использовать Transients API для временного хранения информации.

Добавление поля владельца к другим типам записи

Если у вас есть кастомные типы записи, для которых тоже нужен владелец, добавьте вызов register_rest_field для каждого типа, например:

register_rest_field('custom_post_type', 'post_owner', array( ... ));

Использование плагина Clearfy Pro для расширения REST API

Плагин Clearfy Pro позволяет с помощью удобного интерфейса управлять полями REST API и расширять его без написания кода. Если вы не хотите писать самостоятельно, этот инструмент значительно ускорит процесс.

Итоги

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

Как использовать WPMeta для автоматизации задач в WordPress
18.01.2026
Как настроить автоматический rollback обновлений в WordPress
19.03.2026
Как избежать проблем с кэшем при разработке плагинов WordPress
10.12.2025
Как добавить свои поля в REST API WordPress для кастомных данных
21.12.2025
Как создать собственный REST API endpoint в WordPress: практическое руководство
28.11.2025

Совсем скоро здесь откроется ресурс о вордпресс.