【问题标题】:WP_REST_Request "set_query_params" - $_GET is emptyWP_REST_Request "set_query_params" - $_GET 为空
【发布时间】:2020-06-14 21:08:15
【问题描述】:

我正在尝试创建一个 WP_REST_Request 并设置一些查询参数。我是这样设置的:

$request = new WP_REST_Request( 'GET', '/v2/some-path');
$request->set_query_params( ['lang' => 'da'] );

但是,没有设置参数。如果我只从请求的路由返回 $_GET 参数,那么它会返回一个空数组。怎么会?

我已遵循本指南:https://developer.wordpress.org/reference/classes/wp_rest_request/set_query_params/

这是我的全部代码:

$request = new WP_REST_Request( 'GET', '/v2/some-path');
$request->set_query_params( ['lang' => 'da'] );
$response = rest_do_request( $request );
$server = rest_get_server();
$data = $server->response_to_data( $response, false );

如果我运行get_query_params,它会得到正确的结果。

$request->get_query_params(); // it returns ['lang' => 'da']

【问题讨论】:

    标签: php wordpress get wordpress-rest-api


    【解决方案1】:

    在我的 register_rest_route 中,我必须像这样获取 $_GET 参数:

    register_rest_route( 'jwr/v1', '/products/(?P<slug>\S+)', array(
      'methods' => 'GET',
      'callback' => function($data) {
        $_GET = $data->get_query_params(); // this part fetches the right $_GET params
    

    【讨论】:

      猜你喜欢
      • 2011-06-25
      • 2015-10-09
      • 1970-01-01
      • 1970-01-01
      • 2012-09-09
      • 2015-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多