WP_REST_Request::from_url() public WP 4.5.0
Retrieves a WP_REST_Request object from a full URL.
{} It's a method of the class: WP_REST_Request{}
Hooks from the method
Return
WP_REST_Request/false. WP_REST_Request object on success, false on failure.
Usage
$result = WP_REST_Request::from_url( $url );
- $url(string) (required)
- URL with protocol, domain, path and query args.
Changelog
Since 4.5.0 | Introduced. |
Code of WP_REST_Request::from_url() WP REST Request::from url WP 5.6
public static function from_url( $url ) {
$bits = parse_url( $url );
$query_params = array();
if ( ! empty( $bits['query'] ) ) {
wp_parse_str( $bits['query'], $query_params );
}
$api_root = rest_url();
if ( get_option( 'permalink_structure' ) && 0 === strpos( $url, $api_root ) ) {
// Pretty permalinks on, and URL is under the API root.
$api_url_part = substr( $url, strlen( untrailingslashit( $api_root ) ) );
$route = parse_url( $api_url_part, PHP_URL_PATH );
} elseif ( ! empty( $query_params['rest_route'] ) ) {
// ?rest_route=... set directly.
$route = $query_params['rest_route'];
unset( $query_params['rest_route'] );
}
$request = false;
if ( ! empty( $route ) ) {
$request = new WP_REST_Request( 'GET', $route );
$request->set_query_params( $query_params );
}
/**
* Filters the request generated from a URL.
*
* @since 4.5.0
*
* @param WP_REST_Request|false $request Generated request object, or false if URL
* could not be parsed.
* @param string $url URL the request was generated from.
*/
return apply_filters( 'rest_request_from_url', $request, $url );
}