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

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

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

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

Используя REST API, можно создавать мобильные приложения, одностраничные приложения (SPA), интеграции с другими сервисами, админ-панели и многое другое. Это особенно удобно, когда нужен кастомный фронтенд или нестандартное взаимодействие с контентом без прямого подключения к базе данных.

REST API работает с форматами JSON и HTTP-методами (GET, POST, PUT, DELETE), что делает интеграцию простой и универсальной.

Основные эндпоинты и типы запросов REST API WordPress

В WordPress существуют стандартные эндпоинты для работы с основными типами данных:

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

Пример GET-запроса для получения списка последних 5 записей:

fetch('https://your-site.ru/wp-json/wp/v2/posts?per_page=5')
  .then(response => response.json())
  .then(data => console.log(data));

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

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

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

Пример создания эндпоинта, который возвращает список последних 3 популярных записей (по количеству просмотров):

add_action('rest_api_init', function () {
  register_rest_route('wpdream/v1', '/popular-posts', array(
    'methods' => 'GET',
    'callback' => 'wpdream_get_popular_posts',
  ));
});

function wpdream_get_popular_posts() {
  $args = array(
    'posts_per_page' => 3,
    'meta_key' => 'post_views_count',
    'orderby' => 'meta_value_num',
    'order' => 'DESC',
  );
  $query = new WP_Query($args);
  $posts = array();
  while ($query->have_posts()) {
    $query->the_post();
    $posts[] = array(
      'id' => get_the_ID(),
      'title' => get_the_title(),
      'link' => get_permalink(),
    );
  }
  wp_reset_postdata();
  return $posts;
}

Такой эндпоинт будет доступен по URL https://your-site.ru/wp-json/wpdream/v1/popular-posts и вернёт JSON с нужными данными.

Аутентификация в REST API WordPress: JWT и базовая авторизация

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

Гораздо лучше использовать JWT (JSON Web Token) — современный и безопасный стандарт. Для WordPress есть популярный плагин JWT Authentication for WP REST API, который позволяет настроить выдачу токенов и проверку их при запросах.

Пример запроса на получение токена через POST:

POST https://your-site.ru/wp-json/jwt-auth/v1/token
Body (JSON): {
  "username": "user",
  "password": "pass"
}

После получения токена его нужно передавать в заголовке Authorization для защищённых запросов:

Authorization: Bearer your_jwt_token

Пример создания записи через REST API с использованием PHP

Предположим, у вас есть внешнее приложение на PHP, которое должно создавать новые записи на сайте. Вот пример кода с использованием cURL и JWT авторизации:

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

$ch = curl_init('https://your-site.ru/wp-json/wp/v2/posts');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  'Content-Type: application/json',
  'Authorization: Bearer ' . $token
));
$response = curl_exec($ch);
curl_close($ch);

var_dump(json_decode($response));

Практические советы и подводные камни при работе с REST API WordPress

Производительность и кеширование

REST API создаёт дополнительную нагрузку на сервер, особенно при большом числе запросов. Чтобы снизить нагрузку, используйте кеширование ответов на уровне сервера или через плагины. Например, Clearfy Pro умеет оптимизировать REST API запросы и отключать ненужные эндпоинты.

Безопасность и права доступа

Обязательно проверяйте права пользователя в ваших кастомных эндпоинтах, чтобы не допустить утечку данных или несанкционированное изменение. В callback-функциях используйте проверки с помощью current_user_can() или wp_verify_nonce().

Совместимость с плагинами и темами

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

Заключение: REST API как мощный инструмент для разработчиков на WordPress

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

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

Дополнительно можете ознакомиться с плагином WPCommunity для расширения функционала REST API и создания социальных функций на базе WordPress.

Как удалить старые изображения в WordPress без плагинов: практическое руководство
14.04.2026
Как удалить пустые категории в WordPress с помощью кода
13.02.2026
Как создать динамический список постов с фильтрами в WordPress
29.01.2026
Как автоматизировать управление публикациями WordPress с помощью WPRemark
07.04.2026
Как использовать WPCommunity для создания собственного форума на WordPress
03.01.2026