wp_get_latest_revision_id_and_total_count

The timeline below displays how wordpress function wp_get_latest_revision_id_and_total_count has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.1

/**
 * Returns the latest revision ID and count of revisions for a post.
 *
 * @since 6.1.0
 *
 * @param int|WP_Post $post Optional. 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.
 *
 *     @type int $latest_id The latest revision post ID or 0 if no revisions exist.
 *     @type int $count     The total count of revisions for the given post.
 * }
 */
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);
}