/**
  * Embeds the links from the data into the request.
  *
  * @since 4.4.0
  * @access protected
  *
  * @param array $data Data from the request.
  * @return array {
  *     Data with sub-requests embedded.
  *
  *     @type array [$_links]    Links.
  *     @type array [$_embedded] Embeddeds.
  * }
  */
 protected function embed_links($data)
 {
     if (empty($data['_links'])) {
         return $data;
     }
     $embedded = array();
     foreach ($data['_links'] as $rel => $links) {
         // Ignore links to self, for obvious reasons.
         if ('self' === $rel) {
             continue;
         }
         $embeds = array();
         foreach ($links as $item) {
             // Determine if the link is embeddable.
             if (empty($item['embeddable'])) {
                 // Ensure we keep the same order.
                 $embeds[] = array();
                 continue;
             }
             // Run through our internal routing and serve.
             $request = WP_REST_Request::from_url($item['href']);
             if (!$request) {
                 $embeds[] = array();
                 continue;
             }
             // Embedded resources get passed context=embed.
             if (empty($request['context'])) {
                 $request['context'] = 'embed';
             }
             $response = $this->dispatch($request);
             /** This filter is documented in wp-includes/rest-api/class-wp-rest-server.php */
             $response = apply_filters('rest_post_dispatch', rest_ensure_response($response), $this, $request);
             $embeds[] = $this->response_to_data($response, false);
         }
         // Determine if any real links were found.
         $has_links = count(array_filter($embeds));
         if ($has_links) {
             $embedded[$rel] = $embeds;
         }
     }
     if (!empty($embedded)) {
         $data['_embedded'] = $embedded;
     }
     return $data;
 }
 /**
  * @dataProvider data_from_url
  */
 public function test_from_url_invalid($permalink_structure)
 {
     update_option('permalink_structure', $permalink_structure);
     $using_site = site_url('/wp/v2/posts/1');
     $request = WP_REST_Request::from_url($using_site);
     $this->assertFalse($request);
     $using_home = home_url('/wp/v2/posts/1');
     $request = WP_REST_Request::from_url($using_home);
     $this->assertFalse($request);
 }