wp_get_latest_revision_id_and_total_count( int|WP_Post $post ): array|WP_Error

In this article

Returns the latest revision ID and count of revisions for a post.

Parameters

$postint|WP_Postoptional
Post ID or WP_Post object. Default is global $post.

Return

array|WP_Error Returns associative array with latest revision ID and total count, or a WP_Error if the post does not exist or revisions are not enabled.
  • latest_id int
    The latest revision post ID or 0 if no revisions exist.
  • count int
    The total count of revisions for the given post.

Source

function wp_get_latest_revision_id_and_total_count( $post = 0 ) {
	$post = get_post( $post );

	if ( ! $post ) {
		return new WP_Error( 'invalid_post', __( 'Invalid post.' ) );
	}

	if ( ! wp_revisions_enabled( $post ) ) {
		return new WP_Error( 'revisions_not_enabled', __( 'Revisions not enabled.' ) );
	}

	$args = array(
		'post_parent'         => $post->ID,
		'fields'              => 'ids',
		'post_type'           => 'revision',
		'post_status'         => 'inherit',
		'order'               => 'DESC',
		'orderby'             => 'date ID',
		'posts_per_page'      => 1,
		'ignore_sticky_posts' => true,
	);

	$revision_query = new WP_Query();
	$revisions      = $revision_query->query( $args );

	if ( ! $revisions ) {
		return array(
			'latest_id' => 0,
			'count'     => 0,
		);
	}

	return array(
		'latest_id' => $revisions[0],
		'count'     => $revision_query->found_posts,
	);
}

Changelog

VersionDescription
6.1.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.