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 может получить начальные данные и сразу передать их приложению при загрузке страницы.
Это позволяет:
Создайте объект 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. Поэтому перед обращением к закрытым данным или выполнением изменений нужно явно проверять права пользователя.
| # | Наименование новости | Тональность | Информативность | Дата публикации |
|---|---|---|---|---|
| 1 | Interactivity API в WordPress — полное руководство | 0 | 8.16 | 29-01-2026 |
| 2 | API Сайдбаров и Виджетов | 0 | 12.3 | 22-05-2026 |
| 3 | Block Bindings API | 0 | 8.23 | 18-01-2026 |
| 4 | Релиз WordPress 7.0 | 0 | 16.65 | 20-05-2026 |
| 5 | Mapping доменов в WordPress Multisite | 0 | 9.71 | 01-02-2026 |
| 6 | Улучшения переводов в WP 6.5 (.l10n.php) | 0 | 12.62 | 23-05-2026 |
| 7 | AI-integratie en WordPress: een diepgaande analyse van de architectuur en een praktijkvoorbeeld | 0 | 12.31 | 22-07-2026 |
| 8 | Портал API России как единая экосистема для развития API-экономики | 0 | 15.02 | 25-02-2026 |
| 9 | Block Patterns (Unsynced, Synced, Override) | 0 | 8.44 | 12-01-2026 |
| 10 | WordPressin kytkeminen tekoälyyn ja ulkoisiin työkaluihin – APIt ja MCP:t WordPress-käytössä | 0 | 12.16 | 04-06-2026 |