Wordpress REST Api-запрос работает по прямому вызову, но не из скрипта - PullRequest
0 голосов
/ 10 января 2019

У меня проблема с использованием WP REST API V2. У меня есть два блога с разными URL-адресами, и я хочу загрузить посты из одного блога и показать их во втором. Я думал, что использование WP REST API было бы хорошей идеей для этого.

Для первого блога, если я открою URL вроде этого:

http://blog.example -a.de / сор-JSON / шр / v2 / сообщений

я получаю все сообщения в формате json.

Во втором блоге (назовем его blog.example-b.de) я создал файл шаблона страницы для загрузки постов в блоге из первого блога через указанную выше ссылку. После некоторого поиска примеров и чтения документации самое короткое решение выглядело примерно так:

$request = WP_REST_Request::from_url('http://blog.example-a.de/wp-json/wp/v2/posts'); 
$response = rest_do_request( $request );
$response = $wp_rest_server->response_to_data($body, true);

Но когда я делаю это, я получаю ошибку:

array (3) {["code"] => string (13) "rest_no_route" ["message"] => string (85) "Не найден маршрут, соответствующий URL-адресу и методу запроса" ["data"] => array (1) {["status"] => int (404)}}

И теперь я немного застрял в этом. Я не могу понять, почему это работает, когда я напрямую вызываю URL в браузере, но не из сценария ...

Я попробовал другой метод для извлечения данных из API:

$request = wp_remote_get( 'http://blog.example-a.de/wp-json/wp/v2/posts' );
$body = wp_remote_retrieve_body( $request );
$data = json_decode( $body );

И на удивление это работает. Редактировать: Это дает мне некоторые данные, но не данные, которые мне нужны в нужном формате.

Я почти уверен, что должно быть что-то, чего мне не хватает, может, у кого-то здесь есть идея?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...