Parsed: 130925

  public function get_theme_item( $request ) {
    if ( get_stylesheet() !== $request['stylesheet'] ) {
      // This endpoint only supports the active theme for now.
      return new WP_Error(
        'rest_theme_not_found',
        __( 'Theme not found.' ),
        array( 'status' => 404 )
      );
    }

    $theme  = WP_Theme_JSON_Resolver::get_merged_data( 'theme' );
    $data   = array();
    $fields = $this->get_fields_for_response( $request );

    if ( rest_is_field_included( 'settings', $fields ) ) {
      $data['settings'] = $theme->get_settings();
    }

    if ( rest_is_field_included( 'styles', $fields ) ) {
      $raw_data       = $theme->get_raw_data();
      $data['styles'] = isset( $raw_data['styles'] ) ? $raw_data['styles'] : array();
    }

    $context = ! empty( $request['context'] ) ? $request['context'] : 'view';
    $data    = $this->add_additional_fields_to_object( $data, $request );
    $data    = $this->filter_response_by_context( $data, $context );

    $response = rest_ensure_response( $data );

    if ( rest_is_field_included( '_links', $fields ) || rest_is_field_included( '_embedded', $fields ) ) {
      $links = array(
        'self' => array(
          'href' => rest_url( sprintf( '%s/%s/themes/%s', $this->namespace, $this->rest_base, $request['stylesheet'] ) ),
        ),
      );
      $response->add_links( $links );
    }

    return $response;
  }