Как использовать REST API в WordPress для создания приложений

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

Что такое REST API в WordPress и зачем он нужен

WordPress REST API — это набор стандартных URL-адресов (эндпоинтов), которые возвращают данные в формате JSON. Это позволяет получать, создавать, обновлять и удалять записи, страницы, пользователей и другие объекты WordPress программно.

REST API особенно полезен, если вы хотите:

  • Создать мобильное приложение, которое будет работать с вашим сайтом;
  • Разработать фронтенд на React, Vue или Angular, используя WordPress как бэкенд;
  • Интегрировать WordPress с внешними сервисами;
  • Автоматизировать управление контентом.

Начиная с версии 4.7, REST API включён в ядро WordPress. Это значит, что основные эндпоинты уже доступны без установки дополнительных плагинов.

Основные эндпоинты и работа с ними

По умолчанию в WordPress доступны следующие основные маршруты REST API:

  • /wp-json/wp/v2/posts — записи;
  • /wp-json/wp/v2/pages — страницы;
  • /wp-json/wp/v2/categories — категории;
  • /wp-json/wp/v2/users — пользователи (требует авторизации);
  • /wp-json/wp/v2/media — медиафайлы.

Например, чтобы получить список последних 10 записей в формате JSON, достаточно сделать GET-запрос к https://ваш-сайт/wp-json/wp/v2/posts?per_page=10.

Пример запроса с помощью PHP и функции wp_remote_get:

$response = wp_remote_get('https://example.com/wp-json/wp/v2/posts?per_page=10');
if (is_array($response) && !is_wp_error($response)) {
    $body = wp_remote_retrieve_body($response);
    $posts = json_decode($body);
    foreach ($posts as $post) {
        echo $post->title->rendered . "\n";
    }
}

Создание кастомных эндпоинтов в WordPress REST API

В большинстве случаев стандартных эндпоинтов достаточно, но иногда нужна дополнительная функциональность. Для этого можно создавать свои собственные маршруты.

Рассмотрим пример, как зарегистрировать кастомный эндпоинт, который будет возвращать количество опубликованных записей.

add_action('rest_api_init', 'wpqa_register_custom_endpoint');
function wpqa_register_custom_endpoint() {
    register_rest_route('wpqa/v1', '/post-count', array(
        'methods' => 'GET',
        'callback' => 'wpqa_get_post_count',
        'permission_callback' => '__return_true',
    ));
}

function wpqa_get_post_count() {
    $count_posts = wp_count_posts();
    return array('published_posts' => $count_posts->publish);
}

Теперь GET-запрос к /wp-json/wpqa/v1/post-count вернёт JSON с количеством опубликованных записей.

Разрешения и безопасность кастомных эндпоинтов

При создании своих маршрутов важно правильно настроить permission_callback — функцию, которая проверяет, имеет ли пользователь право выполнять запрос. В примере выше мы указали __return_true, что открывает доступ всем. Для защищённых данных следует проверять права пользователя, например:

function wpqa_permission_callback() {
    return current_user_can('edit_posts');
}

И использовать в регистрации маршрута:

register_rest_route('wpqa/v1', '/private-data', array(
    'methods' => 'GET',
    'callback' => 'wpqa_get_private_data',
    'permission_callback' => 'wpqa_permission_callback',
));

Аутентификация в REST API: как получить доступ к защищённым данным

Для операций, требующих изменения данных (POST, PUT, DELETE), необходима аутентификация. В WordPress доступны несколько способов:

  • Куки авторизации (используется в браузере, если пользователь залогинен);
  • Basic Authentication (для разработки, плагин WP Basic Auth);
  • OAuth 1.0a (сложнее в настройке, но безопаснее);
  • JWT (JSON Web Tokens) — популярный и удобный способ, особенно для мобильных приложений.

Рассмотрим пример использования JWT с плагином JWT Authentication for WP REST API. После установки плагина и настройки секретного ключа в wp-config.php вы сможете получить токен с помощью запроса:

POST /wp-json/jwt-auth/v1/token
{
  "username": "your_username",
  "password": "your_password"
}

Ответ содержит токен, который необходимо передавать в заголовке Authorization: Bearer your_token для защищённых запросов.

Пример: создание новой записи через REST API с использованием JWT

После получения токена можно создавать записи. Вот пример PHP-кода с использованием wp_remote_post:

$token = 'ваш_токен_здесь';
$data = array(
    'title' => 'Новая запись через REST API',
    'status' => 'publish',
    'content' => 'Содержимое записи, созданной через API',
);

$response = wp_remote_post('https://example.com/wp-json/wp/v2/posts', array(
    'headers' => array(
        'Authorization' => 'Bearer ' . $token,
        'Content-Type' => 'application/json',
    ),
    'body' => json_encode($data),
));

if (is_wp_error($response)) {
    echo 'Ошибка: ' . $response->get_error_message();
} else {
    echo 'Запись успешно создана!';
}

Полезные плагины для работы с REST API в WordPress

  • WP REST API Controller — позволяет управлять доступностью стандартных эндпоинтов и полей через удобный интерфейс;
  • Advanced Custom Fields to REST API — расширяет стандартный API, добавляя поддержку полей ACF;
  • JWT Authentication for WP REST API — добавляет поддержку аутентификации через JWT;
  • WP OAuth Server — реализует OAuth2 сервер для безопасной аутентификации.

Резюме и советы по работе с REST API в WordPress

REST API — мощный инструмент для расширения возможностей вашего сайта, интеграций и разработки приложений. Чтобы успешно работать с ним, придерживайтесь нескольких правил:

  • Планируйте структуру данных и маршрутов заранее;
  • Используйте правильную аутентификацию для защиты данных;
  • При необходимости создавайте кастомные эндпоинты для специфических задач;
  • Тестируйте запросы с помощью Postman, curl или аналогичных инструментов;
  • Используйте стандартные функции WordPress для упрощения работы с API.

Освоение REST API откроет новые горизонты в разработке на WordPress и позволит создавать современные и гибкие решения.

Как избежать проблем с просмотром видео в WordPress: практические решения и плагины
08.01.2026
Как использовать WPRemark для автоматического комментирования в WordPress
06.02.2026
Как добавить собственный тип записи в WordPress
25.11.2025
Как удалить пустые термины в WordPress: практическое руководство
23.03.2026
Как добавить динамические метаданные в WordPress для улучшения SEO
12.03.2026