WP_REST_REQUEST: 如何在请求参数中添加“_embed”
WP_REST_REQUEST: how to add "_embed" to request parameters
我将此功能添加到我的 wordpress REST API 以拥有自定义端点
function getSettimanaEventi(){
$request = new WP_REST_Request( 'GET', '/wp/v2/tribe_events' );
$request['_embed'] = '1';
$request['filter[meta_query][0][key]'] = '_EventStartDate';
$request['filter[meta_query][0][value][0]'] = '2017-07-03 00:00:00';
$request['filter[meta_query][0][value][1]'] = '2017-07-09 00:00:00';
$request['filter[meta_query][0][compare]'] = 'BETWEEN';
$request['filter[meta_query][0][type]'] = 'DATE';
$response = rest_do_request( $request );
return $response;
我收到了回复,但没有嵌入的内容。
我知道以“_”开头的参数是私有的,但我需要嵌入内容。
我该怎么办?
我发现的唯一方法是将“_embed”参数添加到 url(例如当您从 Postman 调用它时)并从请求参数中删除它
(更新 - 这似乎不起作用。如果我弄明白了,我会更新。)
你必须像这样在超级全局中设置它:
function getSettimanaEventi () {
// Set super global to simulate request param
$_GET['_embed'] = 1;
$request = new WP_REST_Request( 'GET', '/wp/v2/tribe_events' );
$request['filter[meta_query][0][key]'] = '_EventStartDate';
$request['filter[meta_query][0][value][0]'] = '2017-07-03 00:00:00';
$request['filter[meta_query][0][value][1]'] = '2017-07-09 00:00:00';
$request['filter[meta_query][0][compare]'] = 'BETWEEN';
$request['filter[meta_query][0][type]'] = 'DATE';
$response = rest_do_request( $request );
// cleanup after
unset($_GET['_embed']);
return $response;
}
我在 WP-API 的这张票中找到了这个信息:
https://github.com/WP-API/WP-API/issues/2857
这非常适合我
global $wp_rest_server;
$request = new WP_Rest_Request('GET', '/wp/v2/posts');
$response = rest_do_request($request);
$response = $wp_rest_server->response_to_data($response, true);
我将此功能添加到我的 wordpress REST API 以拥有自定义端点
function getSettimanaEventi(){
$request = new WP_REST_Request( 'GET', '/wp/v2/tribe_events' );
$request['_embed'] = '1';
$request['filter[meta_query][0][key]'] = '_EventStartDate';
$request['filter[meta_query][0][value][0]'] = '2017-07-03 00:00:00';
$request['filter[meta_query][0][value][1]'] = '2017-07-09 00:00:00';
$request['filter[meta_query][0][compare]'] = 'BETWEEN';
$request['filter[meta_query][0][type]'] = 'DATE';
$response = rest_do_request( $request );
return $response;
我收到了回复,但没有嵌入的内容。
我知道以“_”开头的参数是私有的,但我需要嵌入内容。 我该怎么办?
我发现的唯一方法是将“_embed”参数添加到 url(例如当您从 Postman 调用它时)并从请求参数中删除它
(更新 - 这似乎不起作用。如果我弄明白了,我会更新。)
你必须像这样在超级全局中设置它:
function getSettimanaEventi () {
// Set super global to simulate request param
$_GET['_embed'] = 1;
$request = new WP_REST_Request( 'GET', '/wp/v2/tribe_events' );
$request['filter[meta_query][0][key]'] = '_EventStartDate';
$request['filter[meta_query][0][value][0]'] = '2017-07-03 00:00:00';
$request['filter[meta_query][0][value][1]'] = '2017-07-09 00:00:00';
$request['filter[meta_query][0][compare]'] = 'BETWEEN';
$request['filter[meta_query][0][type]'] = 'DATE';
$response = rest_do_request( $request );
// cleanup after
unset($_GET['_embed']);
return $response;
}
我在 WP-API 的这张票中找到了这个信息: https://github.com/WP-API/WP-API/issues/2857
这非常适合我
global $wp_rest_server;
$request = new WP_Rest_Request('GET', '/wp/v2/posts');
$response = rest_do_request($request);
$response = $wp_rest_server->response_to_data($response, true);