WP_REST_Request::from_url() – Retrieves a WP_REST_Request object from a full URL.

You appear to be a bot. Output may be restricted

Description

Retrieves a WP_REST_Request object from a full URL.

Usage

$WP_REST_Request|false = WP_REST_Request::from_url( $url );

Parameters

$url
( string ) required – URL with protocol, domain, path and query args.

Returns

WP_REST_Request|false WP_REST_Request object on success, false on failure.

Source

File name: wordpress/wp-includes/rest-api/class-wp-rest-request.php
Lines:

1 to 36 of 36
  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->WP_REST_Request::set_query_params( $query_params );
    }

    
/**
 * Filters the REST API 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 );
  }
 

 View on GitHub View on Trac