REST API: in `WP_REST_Server::dispatch()`, move `preg_match()` out of it's current loop, which doesn't affect the context passed to it.
Props TobiasBg. Fixes #34488. git-svn-id: https://develop.svn.wordpress.org/trunk@35514 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
eef98a3495
commit
dc3f5a0cf5
|
@ -763,6 +763,12 @@ class WP_REST_Server {
|
||||||
$path = $request->get_route();
|
$path = $request->get_route();
|
||||||
|
|
||||||
foreach ( $this->get_routes() as $route => $handlers ) {
|
foreach ( $this->get_routes() as $route => $handlers ) {
|
||||||
|
$match = preg_match( '@^' . $route . '$@i', $path, $args );
|
||||||
|
|
||||||
|
if ( ! $match ) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
foreach ( $handlers as $handler ) {
|
foreach ( $handlers as $handler ) {
|
||||||
$callback = $handler['callback'];
|
$callback = $handler['callback'];
|
||||||
$response = null;
|
$response = null;
|
||||||
|
@ -771,12 +777,6 @@ class WP_REST_Server {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$match = preg_match( '@^' . $route . '$@i', $path, $args );
|
|
||||||
|
|
||||||
if ( ! $match ) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( ! is_callable( $callback ) ) {
|
if ( ! is_callable( $callback ) ) {
|
||||||
$response = new WP_Error( 'rest_invalid_handler', __( 'The handler for the route is invalid' ), array( 'status' => 500 ) );
|
$response = new WP_Error( 'rest_invalid_handler', __( 'The handler for the route is invalid' ), array( 'status' => 500 ) );
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue