Title: wp_ajax_get_revision_diffs
Published: April 25, 2014
Last modified: February 24, 2026

---

# wp_ajax_get_revision_diffs()

## In this article

 * [Source](https://developer.wordpress.org/reference/functions/wp_ajax_get_revision_diffs/?output_format=md#source)
 * [Related](https://developer.wordpress.org/reference/functions/wp_ajax_get_revision_diffs/?output_format=md#related)
 * [Changelog](https://developer.wordpress.org/reference/functions/wp_ajax_get_revision_diffs/?output_format=md#changelog)

[ Back to top](https://developer.wordpress.org/reference/functions/wp_ajax_get_revision_diffs/?output_format=md#wp--skip-link--target)

Handles getting revision diffs via AJAX.

## 󠀁[Source](https://developer.wordpress.org/reference/functions/wp_ajax_get_revision_diffs/?output_format=md#source)󠁿

    ```php
    function wp_ajax_get_revision_diffs() {
    	require ABSPATH . 'wp-admin/includes/revision.php';

    	$post = get_post( (int) $_REQUEST['post_id'] );
    	if ( ! $post ) {
    		wp_send_json_error();
    	}

    	if ( ! current_user_can( 'edit_post', $post->ID ) ) {
    		wp_send_json_error();
    	}

    	// Really just pre-loading the cache here.
    	$revisions = wp_get_post_revisions( $post->ID, array( 'check_enabled' => false ) );
    	if ( ! $revisions ) {
    		wp_send_json_error();
    	}

    	$return = array();

    	// Increase the script timeout limit to allow ample time for diff UI setup.
    	if ( function_exists( 'set_time_limit' ) ) {
    		set_time_limit( 5 * MINUTE_IN_SECONDS );
    	}

    	foreach ( $_REQUEST['compare'] as $compare_key ) {
    		list( $compare_from, $compare_to ) = explode( ':', $compare_key ); // from:to

    		$return[] = array(
    			'id'     => $compare_key,
    			'fields' => wp_get_revision_ui_diff( $post, $compare_from, $compare_to ),
    		);
    	}
    	wp_send_json_success( $return );
    }
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-admin/includes/ajax-actions.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/6.9.4/src/wp-admin/includes/ajax-actions.php#L3542)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-admin/includes/ajax-actions.php#L3542-L3576)

## 󠀁[Related](https://developer.wordpress.org/reference/functions/wp_ajax_get_revision_diffs/?output_format=md#related)󠁿

| Uses | Description | 
| [wp_get_revision_ui_diff()](https://developer.wordpress.org/reference/functions/wp_get_revision_ui_diff/)`wp-admin/includes/revision.php` |

Get the revision UI diff.

  | 
| [wp_get_post_revisions()](https://developer.wordpress.org/reference/functions/wp_get_post_revisions/)`wp-includes/revision.php` |

Returns all revisions of specified post.

  | 
| [current_user_can()](https://developer.wordpress.org/reference/functions/current_user_can/)`wp-includes/capabilities.php` |

Returns whether the current user has the specified capability.

  | 
| [wp_send_json_error()](https://developer.wordpress.org/reference/functions/wp_send_json_error/)`wp-includes/functions.php` |

Sends a JSON response back to an Ajax request, indicating failure.

  | 
| [wp_send_json_success()](https://developer.wordpress.org/reference/functions/wp_send_json_success/)`wp-includes/functions.php` |

Sends a JSON response back to an Ajax request, indicating success.

  | 
| [get_post()](https://developer.wordpress.org/reference/functions/get_post/)`wp-includes/post.php` |

Retrieves post data given a post ID or post object.

  |

[Show 4 more](https://developer.wordpress.org/reference/functions/wp_ajax_get_revision_diffs/?output_format=md#)
[Show less](https://developer.wordpress.org/reference/functions/wp_ajax_get_revision_diffs/?output_format=md#)

## 󠀁[Changelog](https://developer.wordpress.org/reference/functions/wp_ajax_get_revision_diffs/?output_format=md#changelog)󠁿

| Version | Description | 
| [3.6.0](https://developer.wordpress.org/reference/since/3.6.0/) | Introduced. |

## User Contributed Notes

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Ffunctions%2Fwp_ajax_get_revision_diffs%2F)
before being able to contribute a note or feedback.