Вход на сайт

Просмотр новости

Найдите то, что Вас интересует

Внутренние запросы к WordPress REST API

Дата публикации: 08-08-2026 19:22:03

WordPress REST API можно вызывать не только через HTTP из внешнего приложения или JavaScript, но и напрямую из PHP-кода внутри WordPress. Такой запрос обрабатывается обычным REST API, но не требует отдельного обращения к серверу по URL. Зачем это нужно Для получения записей внутри WordPress обычно используют WP_Query. Но результат его работы отличается от данных, которые […]


Основное содержимое страницы с новостью.

WordPress REST API можно вызывать не только через HTTP из внешнего приложения или JavaScript, но и напрямую из PHP-кода внутри WordPress.

Такой запрос обрабатывается обычным REST API, но не требует отдельного обращения к серверу по URL.

Зачем это нужно

Для получения записей внутри WordPress обычно используют WP_Query. Но результат его работы отличается от данных, которые возвращает REST API.

Внутренний REST-запрос полезен, когда PHP- и JavaScript-коду нужны данные в одинаковом формате. Например, PHP может получить начальные данные и сразу передать их приложению при загрузке страницы.

Это позволяет:

  • не выполнять дополнительный HTTP-запрос после загрузки страницы.
  • сразу показать данные без промежуточного индикатора загрузки.
  • не загружать WordPress и плагины второй раз ради одного запроса.
Как выполнить внутренний REST-запрос

Создайте объект WP_REST_Request, передайте ему HTTP-метод и маршрут, затем выполните запрос через rest_do_request():

$request = new WP_REST_Request( 'GET', '/wp/v2/posts' );
$request->set_query_params( [
	'per_page' => 12,
] );

$resp = rest_do_request( $request );
$data = rest_get_server()->response_to_data( $resp, false );
$json = wp_json_encode( $data );

Метод set_query_params() задаёт параметры, которые при обычном HTTP-запросе передаются в строке URL. Названия параметров REST API могут отличаться от аргументов WP_Query. Например, вместо post_status используется status.

Функция rest_do_request() передаёт запрос REST-серверу WordPress и возвращает объект ответа.

Метод response_to_data() преобразует ответ в массив. Второй аргумент определяет, нужно ли добавлять встроенные ресурсы из _embedded:

  • false - не добавлять;
  • true - добавить, если маршрут поддерживает встраивание.

Чтобы получить JSON, передайте массив в wp_json_encode().

Проверка прав

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

Схожие новости

#Наименование новостиТональностьИнформативностьДата публикации
1Interactivity API в WordPress — полное руководство08.1629-01-2026
2API Сайдбаров и Виджетов012.322-05-2026
3Block Bindings API08.2318-01-2026
4Релиз WordPress 7.0016.6520-05-2026
5Mapping доменов в WordPress Multisite09.7101-02-2026
6Улучшения переводов в WP 6.5 (.l10n.php)012.6223-05-2026
7AI-integratie en WordPress: een diepgaande analyse van de architectuur en een praktijkvoorbeeld012.3122-07-2026
8Портал API России как единая экосистема для развития API-экономики015.0225-02-2026
9Block Patterns (Unsynced, Synced, Override)08.4412-01-2026
10WordPressin kytkeminen tekoälyyn ja ulkoisiin työkaluihin – APIt ja MCP:t WordPress-käytössä012.1604-06-2026

Классификация: . Схожих патентов: 0. Схожих новостей: 10. Тональность: 0. Информативность: 8.19. Источник: wp-kama.ru.