WP_REST_Server::register_route() WordPress Method
The register_route() method is used to register a new route for the WordPress REST API. This method takes two arguments: the route and the callback.
The route is the path that the API will use to access the resource. The callback is the function that will be called when the route is accessed. The callback function takes two arguments: the WP_REST_Request object and the WP_REST_Response object.
The register_route() method can be used to create both simple and complex routes. For example, a simple route could be used to access a single post:
register_route( 'posts/(?P
WP_REST_Server::register_route( string $namespace, string $route, array $route_args, bool $override = false ) #
Registers a route to the server.
Parameters
- $namespace
(string)(Required)Namespace.
- $route
(string)(Required)The REST route.
- $route_args
(array)(Required)Route arguments.
- $override
(bool)(Optional) Whether the route should be overridden if it already exists.
Default value: false
Source
File: wp-includes/rest-api/class-wp-rest-server.php
public function register_route( $namespace, $route, $route_args, $override = false ) {
if ( ! isset( $this->namespaces[ $namespace ] ) ) {
$this->namespaces[ $namespace ] = array();
$this->register_route(
$namespace,
'/' . $namespace,
array(
array(
'methods' => self::READABLE,
'callback' => array( $this, 'get_namespace_index' ),
'args' => array(
'namespace' => array(
'default' => $namespace,
),
'context' => array(
'default' => 'view',
),
),
),
)
);
}
// Associative to avoid double-registration.
$this->namespaces[ $namespace ][ $route ] = true;
$route_args['namespace'] = $namespace;
if ( $override || empty( $this->endpoints[ $route ] ) ) {
$this->endpoints[ $route ] = $route_args;
} else {
$this->endpoints[ $route ] = array_merge( $this->endpoints[ $route ], $route_args );
}
}
Expand full source codeCollapse full source codeView on TracView on GitHub
Changelog
| Version | Description |
|---|---|
| 4.4.0 | Introduced. |