Make WordPress Core


Ignore:
Timestamp:
02/24/2016 04:19:44 AM (8 years ago)
Author:
rmccue
Message:

REST API: Use WP_REST_Request::from_url() when embedding.

See #35803.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/rest-api/class-wp-rest-server.php

    r36576 r36674  
    533533            foreach ( $links as $item ) {
    534534                // Determine if the link is embeddable.
    535                 if ( empty( $item['embeddable'] ) || strpos( $item['href'], $api_root ) !== 0 ) {
     535                if ( empty( $item['embeddable'] ) ) {
    536536                    // Ensure we keep the same order.
    537537                    $embeds[] = array();
     
    540540
    541541                // Run through our internal routing and serve.
    542                 $route = substr( $item['href'], strlen( untrailingslashit( $api_root ) ) );
    543                 $query_params = array();
    544 
    545                 // Parse out URL query parameters.
    546                 $parsed = parse_url( $route );
    547                 if ( empty( $parsed['path'] ) ) {
     542                $request = WP_REST_Request::from_url( $item['href'] );
     543                if ( ! $request ) {
    548544                    $embeds[] = array();
    549545                    continue;
    550546                }
    551547
    552                 if ( ! empty( $parsed['query'] ) ) {
    553                     parse_str( $parsed['query'], $query_params );
    554 
    555                     // Ensure magic quotes are stripped.
    556                     if ( get_magic_quotes_gpc() ) {
    557                         $query_params = stripslashes_deep( $query_params );
    558                     }
    559                 }
    560 
    561548                // Embedded resources get passed context=embed.
    562                 if ( empty( $query_params['context'] ) ) {
    563                     $query_params['context'] = 'embed';
    564                 }
    565 
    566                 $request = new WP_REST_Request( 'GET', $parsed['path'] );
    567 
    568                 $request->set_query_params( $query_params );
     549                if ( empty( $request['context'] ) ) {
     550                    $request['context'] = 'embed';
     551                }
     552
    569553                $response = $this->dispatch( $request );
    570554
Note: See TracChangeset for help on using the changeset viewer.