wp_list_post_revisions( int|WP_Post $post_id, string $type = 'all' )

Display a list of a post’s revisions.

Description

Can output either a UL with edit links or a TABLE with diff interface, and restore action links.

Parameters

$post_id

(int|WP_Post) (Optional) Post ID or WP_Post object. Default is global $post.

$type

(string) (Optional) 'all' (default), 'revision' or 'autosave'

Default value: 'all'

Source

File: wp-includes/post-template.php

function wp_list_post_revisions( $post_id = 0, $type = 'all' ) {
	$post = get_post( $post_id );
	if ( ! $post ) {
		return;
	}

	// $args array with (parent, format, right, left, type) deprecated since 3.6.
	if ( is_array( $type ) ) {
		$type = ! empty( $type['type'] ) ? $type['type'] : $type;
		_deprecated_argument( __FUNCTION__, '3.6.0' );
	}

	$revisions = wp_get_post_revisions( $post->ID );
	if ( ! $revisions ) {
		return;
	}

	$rows = '';
	foreach ( $revisions as $revision ) {
		if ( ! current_user_can( 'read_post', $revision->ID ) ) {
			continue;
		}

		$is_autosave = wp_is_post_autosave( $revision );
		if ( ( 'revision' === $type && $is_autosave ) || ( 'autosave' === $type && ! $is_autosave ) ) {
			continue;
		}

		$rows .= "\t<li>" . wp_post_revision_title_expanded( $revision ) . "</li>\n";
	}

	echo "<div class='hide-if-js'><p>" . __( 'JavaScript must be enabled to use this feature.' ) . "</p></div>\n";

	echo "<ul class='post-revisions hide-if-no-js'>\n";
	echo $rows;
	echo '</ul>';
}

Changelog

Version Description
2.6.0 Introduced.

© 2003–2021 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/functions/wp_list_post_revisions