次のようにしてエンドポイントを追加しようとしています。
register_rest_route('namespace/v1','custom-search/(?P<search>[a-zA-Z\s]+)',
array(
'methods' => 'GET',
'callback' => 'gm_custom_search_callback'
)
);
これはルートを登録しますが、スペース文字、つまり%20を追加したり、 ""を含む文字列を渡したときに認識されません。
あなたはこれのようにこれをすることができます:
function get_custom_search_callback($request) {
//$parameters = $request->get_params();
$response = urldecode($request->get_param('search'));
return rest_ensure_response($response);
}
add_action('rest_api_init', 'add_custom_users_api');
function add_custom_users_api(){
register_rest_route('namespace/v1',
'custom-search/(?P<search>([a-zA-Z]|%20)+)',
array(
'methods' => 'GET',
'callback' => 'get_custom_search_callback'
)
);
}
2つのことに注意してください。
%20
を追加する必要があります%20
やその他のURLエンコードされた文字を削除するには、search
変数値をurldecode()
で指定する必要があります(正規表現に入れた場合)。