A WordPress-centric search engine for devs and theme authors



rest_handle_options_request ›

Since4.4.0
Deprecatedn/a
rest_handle_options_request ( $response, $handler, $request )
Parameters: (3)
  • (mixed) $response Current response, either response or `null` to indicate pass-through.
    Required: Yes
  • (WP_REST_Server) $handler ResponseHandler instance (usually WP_REST_Server).
    Required: Yes
  • (WP_REST_Request) $request The request that was used to make current response.
    Required: Yes
Returns:
  • (WP_REST_Response) Modified response, either response or `null` to indicate pass-through.
Defined at:
Codex:

Handles OPTIONS requests for the server.

This is handled outside of the server code, as it doesn't obey normal route mapping.



Source

function rest_handle_options_request( $response, $handler, $request ) {
	if ( ! empty( $response ) || $request->get_method() !== 'OPTIONS' ) {
		return $response;
	}

	$response = new WP_REST_Response();
	$data     = array();

	foreach ( $handler->get_routes() as $route => $endpoints ) {
		$match = preg_match( '@^' . $route . '$@i', $request->get_route() );

		if ( ! $match ) {
			continue;
		}

		$data = $handler->get_data_for_route( $route, $endpoints, 'help' );
		$response->set_matched_route( $route );
		break;
	}

	$response->set_data( $data );
	return $response;
}