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

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

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

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

Основные преимущества REST API:

  • Возможность работы с сайтом вне стандартного PHP-окружения WordPress.
  • Универсальный формат данных в JSON, удобный для мобильных и веб-приложений.
  • Гибкость и расширяемость, возможность создавать свои собственные эндпоинты.

REST API позволяет создавать приложения, которые могут управлять постами, страницами, комментариями, пользователями и другими сущностями WordPress.

Как начать работу с REST API WordPress

Для начала нужно понять, как отправлять запросы к стандартным эндпоинтам и как их обрабатывать. Все стандартные маршруты доступны по URL вашего сайта с добавлением /wp-json/wp/v2/. Например, чтобы получить список постов, делаем GET-запрос к:

https://wphost.ru/wp-json/wp/v2/posts

Ответ приходит в формате JSON с массивом постов и их свойствами.

Для работы с REST API можно использовать любые HTTP-клиенты: curl, Postman, axios и др. В JavaScript, например, запрос будет выглядеть так:

fetch('https://wphost.ru/wp-json/wp/v2/posts')
  .then(response => response.json())
  .then(data => console.log(data));

Так вы получаете данные из WordPress и можете использовать их в любом приложении.

Как создавать и обновлять контент через REST API

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

Пример создания нового поста с помощью curl и базовой аутентификации:

curl -X POST https://wphost.ru/wp-json/wp/v2/posts \
  -u 'username:password' \
  -H 'Content-Type: application/json' \
  -d '{"title":"Новость через REST API", "content":"Текст поста", "status":"publish"}'

При успешном запросе вернётся JSON с данными созданного поста.

В PHP можно написать функцию, которая создаёт пост через REST API, используя встроенный класс WP_Http:

function wphost_create_post_via_rest($title, $content) {
  $url = get_site_url() . '/wp-json/wp/v2/posts';
  $credentials = base64_encode('username:password');
  $args = [
    'headers' => [
      'Authorization' => 'Basic ' . $credentials,
      'Content-Type' => 'application/json',
    ],
    'body' => json_encode([
      'title' => $title,
      'content' => $content,
      'status' => 'publish',
    ]),
    'method' => 'POST',
  ];
  $http = new WP_Http();
  $response = $http->request($url, $args);
  return $response;
}

Расширение REST API: создание собственных эндпоинтов

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

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

add_action('rest_api_init', function () {
  register_rest_route('wphost/v1', '/post-count', [
    'methods' => 'GET',
    'callback' => 'wphost_get_post_count',
  ]);
});

function wphost_get_post_count(WP_REST_Request $request) {
  $count = wp_count_posts('post')->publish;
  return ['post_count' => $count];
}

Теперь по адресу https://wphost.ru/wp-json/wphost/v1/post-count можно получить количество опубликованных постов в JSON.

Авторизация и безопасность пользовательских эндпоинтов

Важно предусмотреть проверку прав доступа, чтобы чувствительные данные не были доступны всем. Например, можно добавить параметр permission_callback в register_rest_route:

'permission_callback' => function () {
  return current_user_can('edit_posts');
}

Такой эндпоинт смогут использовать только авторизованные пользователи с правом редактирования постов.

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

Для упрощения работы с REST API рекомендуются следующие плагины:

  • Basic Auth — добавляет базовую аутентификацию для тестов.
  • JWT Authentication — более безопасный метод авторизации через JSON Web Token.
  • WP REST API Controller — позволяет управлять доступом и полями данных через интерфейс.

Эти инструменты помогут вам быстро настроить и обезопасить API на вашем сайте.

Практическое применение REST API для интеграции и разработки

REST API открывает массу возможностей. Вот несколько сценариев:

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

Например, можно написать JavaScript, который подгружает последние новости без перезагрузки страницы, используя REST API и fetch.

fetch('https://wphost.ru/wp-json/wp/v2/posts?per_page=5')
  .then(response => response.json())
  .then(posts => {
    const container = document.getElementById('news');
    posts.forEach(post => {
      const el = document.createElement('div');
      el.innerHTML = `<h3>${post.title.rendered}</h3><p>${post.excerpt.rendered}</p>`;
      container.appendChild(el);
    });
  });

Это простой способ сделать сайт более интерактивным и современным.

Как изменить URL авторской страницы в WordPress без плагинов
07.02.2026
Как удалить все комментарии на WordPress с помощью кода
23.12.2025
Как автоматизировать удаление ревизий записей в WordPress для оптимизации базы данных
29.01.2026
Как сделать отзывы с фотографиями в WordPress
11.04.2026
Как удалить сложный кеш WooCommerce без плагинов
06.06.2026