REST API: Ensure proper namespacing when registering routes.
The PR will corerce routes that have a leading slash and throwing a `_doing_it_wrong` notice while ensuring a proper namespace. Fixes #49749. Props TimothyBlynJacobs, skarabeq, afercia. Built from https://develop.svn.wordpress.org/trunk@47842 git-svn-id: http://core.svn.wordpress.org/trunk@47618 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
5850f5f6ef
commit
e7150ae5c7
|
@ -44,6 +44,12 @@ function register_rest_route( $namespace, $route, $args = array(), $override = f
|
|||
return false;
|
||||
}
|
||||
|
||||
$clean_namespace = trim( $namespace, '/' );
|
||||
|
||||
if ( $clean_namespace !== $namespace ) {
|
||||
_doing_it_wrong( __FUNCTION__, __( 'Namespace must not start or end with a slash.' ), '5.4.2' );
|
||||
}
|
||||
|
||||
if ( ! did_action( 'rest_api_init' ) ) {
|
||||
_doing_it_wrong(
|
||||
'register_rest_route',
|
||||
|
@ -84,8 +90,8 @@ function register_rest_route( $namespace, $route, $args = array(), $override = f
|
|||
$arg_group['args'] = array_merge( $common_args, $arg_group['args'] );
|
||||
}
|
||||
|
||||
$full_route = '/' . trim( $namespace, '/' ) . '/' . trim( $route, '/' );
|
||||
rest_get_server()->register_route( $namespace, $full_route, $args, $override );
|
||||
$full_route = '/' . $clean_namespace . '/' . trim( $route, '/' );
|
||||
rest_get_server()->register_route( $clean_namespace, $full_route, $args, $override );
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
*
|
||||
* @global string $wp_version
|
||||
*/
|
||||
$wp_version = '5.5-alpha-47841';
|
||||
$wp_version = '5.5-alpha-47842';
|
||||
|
||||
/**
|
||||
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
||||
|
|
Loading…
Reference in New Issue