WP_REST_Revisions_Controller::prepare_item_for_response() – Prepares the revision for the REST response.

You appear to be a bot. Output may be restricted

Description

Prepares the revision for the REST response.

Usage

$WP_REST_Response = WP_REST_Revisions_Controller::prepare_item_for_response( $item, $request );

Parameters

$item
( WP_Post ) required – Post revision object.
$request
( WP_REST_Request ) required – Request object.

Returns

WP_REST_Response Response object.

Source

File name: wordpress/wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php
Lines:

1 to 95 of 95
  public function prepare_item_for_response( $item, $request ) {
    // Restores the more descriptive, specific name for use within this method.
    $post            = $item;
    $GLOBALS['post'] = $post;

    setup_postdata( $post );

    $fields = $this->get_fields_for_response( $request );
    $data   = array();

    if ( in_array( 'author', $fields, true ) ) {
      $data['author'] = (int) $post->post_author;
    }

    if ( in_array( 'date', $fields, true ) ) {
      $data['date'] = $this->WP_REST_Revisions_Controller::prepare_date_response( $post->post_date_gmt, $post->post_date );
    }

    if ( in_array( 'date_gmt', $fields, true ) ) {
      $data['date_gmt'] = $this->WP_REST_Revisions_Controller::prepare_date_response( $post->post_date_gmt );
    }

    if ( in_array( 'id', $fields, true ) ) {
      $data['id'] = $post->ID;
    }

    if ( in_array( 'modified', $fields, true ) ) {
      $data['modified'] = $this->WP_REST_Revisions_Controller::prepare_date_response( $post->post_modified_gmt, $post->post_modified );
    }

    if ( in_array( 'modified_gmt', $fields, true ) ) {
      $data['modified_gmt'] = $this->WP_REST_Revisions_Controller::prepare_date_response( $post->post_modified_gmt );
    }

    if ( in_array( 'parent', $fields, true ) ) {
      $data['parent'] = (int) $post->post_parent;
    }

    if ( in_array( 'slug', $fields, true ) ) {
      $data['slug'] = $post->post_name;
    }

    if ( in_array( 'guid', $fields, true ) ) {
      $data['guid'] = array(
        
/** This filter is documented in wp-includes/post-template.php */
        'rendered' => apply_filters( 'get_the_guid', $post->guid, $post->ID ),
        'raw'      => $post->guid,
      );
    }

    if ( in_array( 'title', $fields, true ) ) {
      $data['title'] = array(
        'raw'      => $post->post_title,
        'rendered' => get_the_title( $post->ID ),
      );
    }

    if ( in_array( 'content', $fields, true ) ) {

      $data['content'] = array(
        'raw'      => $post->post_content,
        
/** This filter is documented in wp-includes/post-template.php */
        'rendered' => apply_filters( 'the_content', $post->post_content ),
      );
    }

    if ( in_array( 'excerpt', $fields, true ) ) {
      $data['excerpt'] = array(
        'raw'      => $post->post_excerpt,
        'rendered' => $this->WP_REST_Revisions_Controller::prepare_excerpt_response( $post->post_excerpt, $post ),
      );
    }

    $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 ( ! empty( $data['parent'] ) ) {
      $response->add_link( 'parent', rest_url( rest_get_route_for_post( $data['parent'] ) ) );
    }

    
/**
 * Filters a revision returned from the REST API.
 *
 * Allows modification of the revision right before it is returned.
 *
 * @since 4.7.0
 *
 * @param WP_REST_Response $response The response object.
 * @param WP_Post          $post     The original revision object.
 * @param WP_REST_Request  $request  Request used to generate the response.
 */
    return apply_filters( 'rest_prepare_revision', $response, $post, $request );
  }
 

 View on GitHub View on Trac