WordPress Version: 6.1
/**
* 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.
*
* @since 2.6.0
*
* @param int|WP_Post $post Optional. Post ID or WP_Post object. Default is global $post.
* @param string $type 'all' (default), 'revision' or 'autosave'
*/
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>';
}