wp_get_latest_revision_id_and_total_count()WP 6.1.0

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

No Hooks.

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.

Usage

wp_get_latest_revision_id_and_total_count( $post );
$post(int|WP_Post)
Post ID or WP_Post object.
Default: global $post

Changelog

Since 6.1.0 Introduced.

wp_get_latest_revision_id_and_total_count() code WP 6.6.2

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,
	);
}