wp_list_post_revisions()WP 2.6.0

Displays a list of a post's revisions.

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

No Hooks.

Return

null. Nothing (null).

Usage

wp_list_post_revisions( $post, $type );
$post(int|WP_Post)
Post ID or WP_Post object.
Default: global $post
$type(string)
'all' (default), 'revision' or 'autosave'
Default: 'all'

Changelog

Since 2.6.0 Introduced.

wp_list_post_revisions() code WP 6.5.2

function wp_list_post_revisions( $post = 0, $type = 'all' ) {
	$post = get_post( $post );

	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>';
}