有没有办法在WordPress中格式化我的端点URL?

时间:2019-09-05 作者:Ahmed Dawood Salman

我已经在WordPress中编写了一个端点,它运行得很好。问题在于URL。URL请求的当前格式必须如下所示:

https://iotkidsiq.com/wp-json/zaindob/v1/sync_order/key=011900/msisdn=019009

但是,URL请求必须采用以下格式:

https://iotkidsiq.com/wp-json/zaindob/v1/sync_order?key=011900&msisdn=019009

如何设置格式?

这是我的代码:

register_rest_route( \'zaindob/v1\', \'/sync_order/\' . \'key=\' . \'(?P<key>\\d+)\' .  \'/msisdn=\' . \'(?P<msisdn>\\d+)\' , array( 

    \'methods\' => \'GET\',
    \'callback\' => \'updatetable\',
  ) );
} );

1 个回复
SO网友:Jacob Peattie

您没有。查询参数不是路由URL的一部分。您的端点URL是:

https://iotkidsiq.com/wp-json/zaindob/v1/sync_order
因此需要注册为:

register_rest_route( \'zaindob/v1\', \'/sync_order\', array( 
    \'methods\' => \'GET\',
    \'callback\' => \'updatetable\',
) );
keymsisdn 是发送到端点的参数。要定义这些,请设置args 端点选项的属性:

register_rest_route( \'zaindob/v1\', \'/sync_order\', array( 
    \'methods\'  => \'GET\',
    \'callback\' => \'updatetable\',
    \'args\'     => array(
        \'key\'    => array(
            \'type\'     => \'integer\',
            \'required\' => true,
        ),
        \'msisdn\' => array(
            \'type\'     => \'integer\',
            \'required\' => true,
        ),
    ),
) );
现在,端点回调可以接受keymsisdn 参数,端点需要这些参数才能返回结果:

function updatetable( $request ) {
    $key    = $request->get_param( \'key\' );
    $msisdn = $request->get_param( \'msisdn\' );

    // etc.
}