wp_get_revision_ui_diff() – Get the revision UI diff.

You appear to be a bot. Output may be restricted

Description

Get the revision UI diff.

Usage

$array|false = wp_get_revision_ui_diff( $post, $compare_from, $compare_to );

Parameters

$post
( WP_Post|int ) required – The post object or post ID.
$compare_from
( int ) required – The revision ID to compare from.
$compare_to
( int ) required – The revision ID to come to.

Returns

array|false Associative array of a post's revisioned fields and their diffs. Or, false on failure.

Source

File name: wordpress/wp-admin/includes/revision.php
Lines:

1 to 100 of 141
function wp_get_revision_ui_diff( $post, $compare_from, $compare_to ) {
  $post = get_post( $post );
  if ( ! $post ) {
    return false;
  }

  if ( $compare_from ) {
    $compare_from = get_post( $compare_from );
    if ( ! $compare_from ) {
      return false;
    }
  } else {
    // If we're dealing with the first revision...
    $compare_from = false;
  }

  $compare_to = get_post( $compare_to );
  if ( ! $compare_to ) {
    return false;
  }

  // If comparing revisions, make sure we're dealing with the right post parent.
  // The parent post may be a 'revision' when revisions are disabled and we're looking at autosaves.
  if ( $compare_from && $compare_from->post_parent !== $post->ID && $compare_from->ID !== $post->ID ) {
    return false;
  }
  if ( $compare_to->post_parent !== $post->ID && $compare_to->ID !== $post->ID ) {
    return false;
  }

  if ( $compare_from && strtotime( $compare_from->post_date_gmt ) > strtotime( $compare_to->post_date_gmt ) ) {
    $temp         = $compare_from;
    $compare_from = $compare_to;
    $compare_to   = $temp;
  }

  // Add default title if title field is empty.
  if ( $compare_from && empty( $compare_from->post_title ) ) {
    $compare_from->post_title = __( '(no title)' );
  }
  if ( empty( $compare_to->post_title ) ) {
    $compare_to->post_title = __( '(no title)' );
  }

  $return = array();

  foreach ( _wp_post_revision_fields( $post ) as $field => $name ) {
    
/**
 * Contextually filter a post revision field.
 *
 * The dynamic portion of the hook name, `$field`, corresponds to a name of a
 * field of the revision object.
 *
 * Possible hook names include:
 *
 *  - `_wp_post_revision_field_post_title`
 *  - `_wp_post_revision_field_post_content`
 *  - `_wp_post_revision_field_post_excerpt`
 *
 * @since 3.6.0
 *
 * @param string  $revision_field The current revision field to compare to or from.
 * @param string  $field          The current revision field.
 * @param WP_Post $compare_from   The revision post object to compare to or from.
 * @param string  $context        The context of whether the current revision is the old
 *                                or the new one. Values are 'to' or 'from'.
 */
    $content_from = $compare_from ? apply_filters( "_wp_post_revision_field_{$field}", $compare_from->$field, $field, $compare_from, 'from' ) : '';

    
/** This filter is documented in wp-admin/includes/revision.php */
    $content_to = apply_filters( "_wp_post_revision_field_{$field}", $compare_to->$field, $field, $compare_to, 'to' );

    $args = array(
      'show_split_view' => true,
      'title_left'      => __( 'Removed' ),
      'title_right'     => __( 'Added' ),
    );

    
/**
 * Filters revisions text diff options.
 *
 * Filters the options passed to wp_text_diff() when viewing a post revision.
 *
 * @since 4.1.0
 *
 * @param array   $args {
 *     Associative array of options to pass to wp_text_diff().
 *
 *     @type bool $show_split_view True for split view (two columns), false for
 *                                 un-split view (single column). Default true.
 * }
 * @param string  $field        The current revision field.
 * @param WP_Post $compare_from The revision post to compare from.
 * @param WP_Post $compare_to   The revision post to compare to.
 */
    $args = apply_filters( 'revision_text_diff_options', $args, $field, $compare_from, $compare_to );

    $diff = wp_text_diff( $content_from, $content_to, $args );

    if ( ! $diff && 'post_title' === $field ) {
 

 View on GitHub View on Trac