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

|

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

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

REST API — это интерфейс, который позволяет взаимодействовать с сайтом WordPress через стандартные HTTP-запросы: GET, POST, PUT, DELETE. Это значит, что можно получать данные, создавать записи, обновлять их или удалять без необходимости использовать админку WordPress напрямую.

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

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

Как отправлять запросы к REST API WordPress

Для начала рассмотрим, как получить список последних постов. По умолчанию REST API доступен по адресу https://ваш-сайт.ru/wp-json/wp/v2/posts. Пример запроса с использованием fetch в JavaScript:

fetch('https://wpreboot.ru/wp-json/wp/v2/posts')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Ошибка:', error));

Этот код получит JSON-массив с постами. Можно использовать параметры запроса для фильтрации и пагинации, например:

https://wpreboot.ru/wp-json/wp/v2/posts?per_page=5&page=2

Чтобы создать новый пост, нужен POST-запрос с авторизацией. Для простоты в примерах авторизация опущена, но дальше расскажем, как её реализовать.

Добавление пользовательского эндпойнта REST API в WordPress

Если стандартных эндпойнтов недостаточно, можно создать свой. Например, сделаем простой маршрут, который возвращает приветствие с именем пользователя.

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

add_action('rest_api_init', function () {
    register_rest_route('wpreboot/v1', '/hello/(?P<name>[a-zA-Z0-9-]+)', array(
        'methods' => 'GET',
        'callback' => 'wpreboot_hello_callback',
    ));
});

function wpreboot_hello_callback($request) {
    $name = $request['name'];
    return array('message' => 'Привет, ' . sanitize_text_field($name) . '! Добро пожаловать в WP REST API.');
}

Теперь запрос https://wpreboot.ru/wp-json/wpreboot/v1/hello/Андрей вернёт:

{"message":"Привет, Андрей! Добро пожаловать в WP REST API."}

Такой подход позволяет создавать свои сервисы на базе WordPress.

Авторизация в REST API WordPress: Basic Auth и JWT

Многие операции (создание, обновление, удаление) требуют авторизации. Самый простой способ для разработки — Basic Auth с плагином Application Passwords, встроенным в WordPress 5.6 и выше.

Для более продвинутых сценариев подходит JWT (JSON Web Token). Для этого установите плагин JWT Authentication for WP REST API и настройте .htaccess и wp-config.php согласно документации.

Пример запроса с Basic Auth на создание поста с использованием curl:

curl -X POST https://wpreboot.ru/wp-json/wp/v2/posts \
-H 'Authorization: Basic base64_encode(имя:пароль)' \
-H 'Content-Type: application/json' \
-d '{"title":"Новый пост через REST API", "status":"publish"}'

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

Создадим плагин wpreboot-popular-posts.php с содержимым:

<?php
/**
 * Plugin Name: WP Reboot Popular Posts
 * Description: Добавляет REST API маршрут для популярных постов
 * Version: 1.0
 * Author: WP Reboot
 */

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

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

// Для подсчёта просмотров можно использовать хук в single.php или плагин
add_action('wp_head', function () {
    if (is_singular('post')) {
        global $post;
        $views = (int) get_post_meta($post->ID, 'post_views_count', true);
        update_post_meta($post->ID, 'post_views_count', $views + 1);
    }
});

Теперь запрос https://wpreboot.ru/wp-json/wpreboot/v1/popular-posts вернет топ 5 популярных постов по просмотрам.

Советы по безопасности и оптимизации REST API

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

2. Кэшируйте часто запрашиваемые данные, чтобы снизить нагрузку на сервер.

3. Используйте nonce и другие механизмы безопасности, если вызываете REST API из фронтенда.

4. Валидируйте и санитайзите все входящие данные в своих callback-функциях.

5. Не раскрывайте лишнюю информацию в ответах API.

Заключение: REST API как инструмент для расширения WordPress

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

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

Как фильтровать посты по автору в админке WordPress: практическое руководство
16.12.2025
WooCommerce: автоматическое удаление просмотренных товаров из корзины
30.04.2026
Как создать динамические таблицы в WordPress с помощью шорткодов
26.02.2026
Как добавить поддержку WebP в WordPress без плагинов
24.12.2025
Как добавить автоматическое удаление старого контента в WordPress
22.03.2026
×
Оптимизируй свой сайт!

Скидка -15% на премиум плагин Clearfy Pro

Купить плагин сейчас ⋙