WordPress REST API — это мощный инструмент, который позволяет работать с сайтом WordPress как с системой управления контентом через HTTP-запросы. Благодаря REST API можно создавать собственные приложения, мобильные клиенты, интеграции и настраиваемые интерфейсы. В этой статье мы подробно разберём, как использовать REST API в WordPress, рассмотрим примеры кода и практические сценарии.
Что такое WordPress REST API и зачем он нужен
REST API — это набор стандартных конечных точек (endpoints), которые позволяют получать, создавать, изменять и удалять данные на сайте WordPress через HTTP-запросы. Он использует методы HTTP как GET, POST, PUT, DELETE, что делает взаимодействие с сайтом похожим на работу с любой современной веб-сервисом.
С помощью REST API можно:
- Создавать одностраничные приложения (SPA) на React, Vue или Angular, используя WordPress как бекенд.
- Разрабатывать мобильные приложения, которые получают данные сайта напрямую.
- Интегрировать WordPress с внешними сервисами и системами.
- Автоматизировать задачи по управлению контентом.
Как получить данные через REST API WordPress
По умолчанию WordPress уже предоставляет REST API с готовыми маршрутами для стандартных типов записей: посты, страницы, категории, пользователи и др. Чтобы получить список последних постов, достаточно сделать GET-запрос на URL:
https://wordpressa.ru/wp-json/wp/v2/postsЭтот запрос вернёт JSON-массив с информацией о постах, включая заголовки, содержание и метаданные.
Вы можете фильтровать результаты, например, получить 5 последних постов из категории с ID 3:
https://wordpressa.ru/wp-json/wp/v2/posts?categories=3&per_page=5Для выполнения таких запросов в PHP или JavaScript достаточно использовать стандартные инструменты работы с HTTP.
Пример запроса на JavaScript
Вот простой пример, как получить и вывести заголовки последних постов с помощью fetch:
fetch('https://wordpressa.ru/wp-json/wp/v2/posts?per_page=5')
.then(response => response.json())
.then(posts => {
posts.forEach(post => {
console.log(post.title.rendered);
});
});Добавление собственного маршрута REST API в WordPress
Одно из главных преимуществ REST API — возможность расширять его собственными маршрутами для кастомных нужд. Например, можно создать маршрут, который возвращает список актуальных акций магазина или специальные данные.
Для этого нужно использовать хук rest_api_init и функцию register_rest_route. Рассмотрим пример, как создать собственный маршрут, который вернёт приветственное сообщение.
add_action('rest_api_init', 'wordpressa_register_custom_route');
function wordpressa_register_custom_route() {
register_rest_route('wordpressa/v1', '/hello', array(
'methods' => 'GET',
'callback' => 'wordpressa_hello_callback',
));
}
function wordpressa_hello_callback() {
return array('message' => 'Привет от WordPressa REST API!');
}После добавления этого кода в файл functions.php вашей темы или в собственный плагин, при обращении к URL https://wordpressa.ru/wp-json/wordpressa/v1/hello вы получите JSON с сообщением.
Передача параметров в маршрут
Маршруты могут принимать параметры. Например, создадим маршрут, который принимает имя пользователя и возвращает персональное приветствие:
add_action('rest_api_init', 'wordpressa_register_greet_route');
function wordpressa_register_greet_route() {
register_rest_route('wordpressa/v1', '/greet/(?P<name>[a-zA-Z0-9_-]+)', array(
'methods' => 'GET',
'callback' => 'wordpressa_greet_callback',
));
}
function wordpressa_greet_callback($request) {
$name = $request->get_param('name');
return array('message' => "Привет, $name! Добро пожаловать на wordpressa.ru.");
}Теперь запрос https://wordpressa.ru/wp-json/wordpressa/v1/greet/Anna вернёт сообщение Привет, Anna! Добро пожаловать на wordpressa.ru.
Аутентификация и безопасность REST API
Доступ к публичным данным через REST API открыт всем, но для изменения данных требуются права. WordPress поддерживает несколько способов аутентификации:
- Cookie и nonce — для запросов с фронтенда сайта, где пользователь уже авторизован.
- Basic Auth — для тестов и простых сценариев, не рекомендуется в продакшене.
- OAuth и JWT — для более безопасных и сложных интеграций.
Пример добавления проверки прав в кастомном маршруте:
register_rest_route('wordpressa/v1', '/secure-data', array(
'methods' => 'GET',
'callback' => 'wordpressa_secure_data_callback',
'permission_callback' => function() {
return current_user_can('edit_posts');
}
));
function wordpressa_secure_data_callback() {
return array('data' => 'Секретная информация');
}Без правильной аутентификации вызов этого маршрута вернёт ошибку 403.
Полезные плагины для работы с REST API в WordPress
Для расширения возможностей REST API и интеграции с ним есть несколько полезных плагинов:
- WP REST API Controller — позволяет управлять доступом и видимостью полей REST API без кода.
- JWT Authentication for WP REST API — добавляет поддержку JWT-токенов для безопасной аутентификации.
- Advanced Custom Fields to REST API — расширяет стандартный REST API, позволяя получать данные из полей ACF.
Установка и настройка этих плагинов значительно упрощает работу с REST API, особенно если нужна кастомизация данных и авторизация.
Заключение: практические советы по работе с REST API WordPress
При работе с REST API важно:
- Тщательно планировать структуру маршрутов и их безопасность.
- Использовать встроенные возможности WordPress для аутентификации и проверок прав.
- Оптимизировать запросы и отдавать только необходимые данные, чтобы не перегружать сетевой трафик.
- Тестировать созданные маршруты с помощью инструментов Postman или curl.
WordPress REST API — это не просто техническая возможность, а целая экосистема, которая открывает новые горизонты для разработки гибких и мощных решений на базе WordPress.