我为WordPress API-REST创建了一个自定义端点。我可以通过浏览器正常访问。但是当我尝试通过WP_REST_Request访问它时,我得到一条消息"rest_no_route (404)“
<?php
add_action( 'rest_api_init', 'custom_routes_rifa');
function custom_routes_rifa(){
register_rest_route(
'pluginrifa/v2', '/infos/', array(
'methods' => 'GET',
'callback' => 'api_rifa_infos',
'show_in_index' => false
)
);
}
如果我将/wp-json/pluginrifa/v2/infos/?rifa=140放入浏览器,一切正常,但下面的代码返回404:
<?php
$request = new WP_REST_Request( 'GET', '/wp-json/pluginrifa/v2/infos' );
$request->set_query_params( [ 'rifa' => 140 ] );
$response = rest_do_request( $request );
$server = rest_get_server();
$data = $server->response_to_data( $response, false );
$json = wp_json_encode( $data );
$obj = json_decode($json);
我在Custom route endpoint for WP-REST API gives "code": "rest_no_route", error上发现了这个讨论,但没有一个建议的解决方案得到解决,除了明显不同的东西,因为它是通过HTTP工作的,但通过WP_REST_Request它没有。
发布于 2021-09-23 14:20:02
我发现了问题,我不得不更换:
<?php $request = new WP_REST_Request( 'GET', '/wp-json/pluginrifa/v2/infos' );
至
<?php $request = new WP_REST_Request( 'GET','/pluginrifa/v2/infos' );
/wp-json/需要从请求中省略。我不知道为什么,但在互联网上的一些地方,新WP_REST_Request的例子都在网址中使用了wp-json。也许,这是在某些WordPress更新中出现的
https://stackoverflow.com/questions/69294148
复制相似问题