wp-includes/rest-api.php:34Registers a REST API route.
$route_namespacestring$routestring$argsarrayoptionalarray()$overridebooloptionalfalseboolfunction register_rest_route( $route_namespace, $route, $args = array(), $override = false ) { if ( empty( $route_namespace ) ) { /* * Non-namespaced routes are not allowed, with the exception of the main * and namespace indexes. If you really need to register a * non-namespaced route, call `WP_REST_Server::register_route` directly. */ _doing_it_wrong( __FUNCTION__, sprintf( /* translators: 1: string value of the namespace, 2: string value of the route. */ __( 'Routes must be namespaced with plugin or theme name and version. Instead there seems to be an empty namespace \'%1$s\' for route \'%2$s\'.' ), '<code>' . $route_namespace . '</code>', '<code>' . $route . '</code>' ), '4.4.0' ); return false; } elseif ( empty( $route ) ) { _doing_it_wrong( __FUNCTION__, sprintf( /* translators: 1: string value of the namespace, 2: string value of the route. */ __( 'Route must be specified. Instead within the namespace \'%1$s\', there seems to be an empty route \'%2$s\'.' ), '<code>' . $route_namespace . '</code>', '<code>' . $route . '</code>' ), '4.4.0' ); return false; } $clean_namespace = trim( $route_namespace, '/' ); if ( $clean_namespace !== $route_namespace ) { _doing_it_wrong( __FUNCTION__, sprintf( /* translators: 1: string value of the namespace, 2: string value of the route. */ __( 'Namespace must not start or end with a slash. Instead namespace \'%1$s\' for route \'%2$s\' seems to contain a slash.' ), '<code>' . $route_namespace . '</code>', '<code>' . $route . '</code>' ), '5.4.2' ); } if ( ! did_action( 'rest_api_init' ) ) { _doing_it_wrong( __FUNCTION__, sprintf( /* translators: 1: rest_api_init, 2: string value of the route, 3: string value of the namespace. */ __( 'REST API routes must be registered on the %1$s action. Instead route \'%2$s\' with namespace \'%3$s\' was not registered on this action.' ), '<code>rest_api_init</code>', '<code>' . $route . '</code>', '<code>' . $route_namespace . '</code>' ), '5.1.0' ); } if ( isset( $args['args'] ) ) { $common_args = $args['args']; unset( $args['args'] ); } else { $common_args = array(); } if ( isset( $args['callback'] ) ) { // Upgrade a single set to multiple. $args = array( $args ); } $defaults = array( 'methods' => 'GET', 'callback' => null, 'args' => array(), ); foreach ( $args as $key => &$arg_group ) {Introduced in 4.4.0. Unchanged from 6.7.7 through 7.1.0.
Signature, return type and hooks compared across 5 parsed releases.
src/wp-includes/rest-api.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it.