WordPress REST API: как использовать для создания подключений и интеграций

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

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

REST API (Representational State Transfer Application Programming Interface) — это интерфейс, который позволяет обмениваться данными между WordPress и внешними приложениями, используя стандартные HTTP-запросы (GET, POST, PUT, DELETE). Благодаря REST API вы можете создавать мобильные приложения, подключать сервисы аналитики, синхронизировать данные с внешними CRM или даже строить кастомные административные панели.

Раньше для подобных задач приходилось использовать XML-RPC или создавать сложные кастомные решения, теперь же REST API встроен в ядро WordPress и доступен из коробки.

Важным преимуществом является то, что API работает с JSON-форматом, который прост для обработки в JavaScript и других языках программирования.

Основные возможности WordPress REST API

С помощью REST API можно:

  • Получать список записей, страниц, категорий и других стандартных типов записей.
  • Создавать, обновлять и удалять записи (при наличии прав).
  • Работать с пользовательскими типами записей и таксономиями.
  • Управлять пользователями, комментариями и метаданными.
  • Расширять функционал, создавая собственные конечные точки (endpoints).

Для примера, запрос GET /wp-json/wp/v2/posts вернёт список последних публикаций в формате JSON.

Как создать собственный REST API endpoint в WordPress

Иногда стандартных возможностей API недостаточно, и нужно добавить свои собственные маршруты. Ниже рассмотрим, как это сделать на примере функции wpstudy_register_custom_endpoint().

function wpstudy_register_custom_endpoint() {
    register_rest_route('wpstudy/v1', '/hello/', array(
        'methods' => 'GET',
        'callback' => 'wpstudy_hello_endpoint',
        'permission_callback' => '__return_true',
    ));
}

function wpstudy_hello_endpoint() {
    return array('message' => 'Привет от wpstudy.ru REST API!');
}

add_action('rest_api_init', 'wpstudy_register_custom_endpoint');

Этот код создаёт новый endpoint /wp-json/wpstudy/v1/hello/, который возвращает простой JSON с сообщением. Обратите внимание на параметр permission_callback — здесь он разрешает всем обращаться к эндпоинту, но в реальных проектах стоит добавить проверку прав.

Как использовать собственный endpoint

Для вызова можно использовать любой HTTP клиент. Например, через браузер или curl:

curl https://example.com/wp-json/wpstudy/v1/hello/

Вы получите ответ:

{
  "message": "Привет от wpstudy.ru REST API!"
}

Аутентификация и безопасность в REST API

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

  • Cookie authentication: используется в браузере, когда пользователь залогинен в админке.
  • Basic Authentication: простой метод с передачей логина и пароля в заголовках (подходит для разработки).
  • OAuth 1.0a: более сложный, но безопасный протокол для интеграций.
  • JWT (JSON Web Tokens): популярный метод для REST API, требующий отдельного плагина.

Для практической реализации JWT можно использовать плагин JWT Authentication for WP REST API. После настройки плагина, клиент может получить токен и использовать его для авторизации запросов.

Пример запроса с Basic Authentication

Для тестирования часто используют Basic Auth. Вот пример запроса на создание записи:

curl -X POST https://example.com/wp-json/wp/v2/posts \
    -u 'admin:password' \
    -H 'Content-Type: application/json' \
    -d '{"title": "Новая запись через REST API", "status": "publish"}'

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

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

  • WP REST API Controller — позволяет управлять доступом к API, включая или отключая конечные точки и настраивая права.
  • Advanced Custom Fields to REST API — добавляет данные ACF в ответ API, что полезно при работе с кастомным контентом.
  • JWT Authentication for WP REST API — как уже упоминалось, реализует безопасную авторизацию через JWT.

Практический пример: создание кастомного типа записи с REST API поддержкой

Для полноты картины создадим собственный тип записи «Проекты» с поддержкой REST API, а также добавим к нему метаполе.

function wpstudy_register_projects_cpt() {
    $args = array(
        'label' => 'Проекты',
        'public' => true,
        'show_in_rest' => true, // Включаем поддержку REST API
        'supports' => array('title', 'editor', 'custom-fields'),
    );
    register_post_type('project', $args);
}
add_action('init', 'wpstudy_register_projects_cpt');

// Регистрируем метаполе для REST API
function wpstudy_register_project_meta() {
    register_post_meta('project', '_wpstudy_project_deadline', array(
        'show_in_rest' => true,
        'single' => true,
        'type' => 'string',
        'sanitize_callback' => 'sanitize_text_field',
    ));
}
add_action('init', 'wpstudy_register_project_meta');

Теперь можно создавать проекты через REST API, включая метаполе _wpstudy_project_deadline. Пример запроса на создание:

curl -X POST https://example.com/wp-json/wp/v2/project \
    -u 'admin:password' \
    -H 'Content-Type: application/json' \
    -d '{
        "title": "Запуск нового сайта",
        "status": "publish",
        "meta": {
            "_wpstudy_project_deadline": "2024-12-31"
        }
    }'

Советы и лучшие практики при работе с REST API

При работе с REST API важно соблюдать несколько правил:

  • Всегда проверяйте права доступа в permission_callback, чтобы защитить данные.
  • Используйте nonce или токены для безопасной аутентификации.
  • Планируйте структуру данных и кэширование, чтобы снизить нагрузку на сервер.
  • Документируйте свои кастомные endpoint’ы — это поможет в поддержке и развитии проекта.
  • Используйте стандартные методы HTTP и корректные коды ответов.

Заключение

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

WooCommerce: как отправлять подробные данные о заказе в Slack при оформлении
27.05.2026
Удаление старых ревизий постов в WordPress для оптимизации базы данных
06.03.2026
Как отключить Emoji в WordPress для ускорения сайта
13.04.2026
Как создать автоподгрузку постов в WordPress без плагинов
22.02.2026
Как создать адаптивные таблицы в WordPress
10.04.2026