У меня проблема с использованием 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 );
И на удивление это работает. Редактировать: Это дает мне некоторые данные, но не данные, которые мне нужны в нужном формате.
Я почти уверен, что должно быть что-то, чего мне не хватает, может, у кого-то здесь есть идея?
Спасибо!