WordPress Version: 6.2
/**
* Retrieves the autosaved data of the specified post.
*
* Returns a post object with the information that was autosaved for the specified post.
* If the optional $user_id is passed, returns the autosave for that user, otherwise
* returns the latest autosave.
*
* @since 2.6.0
*
* @global wpdb $wpdb WordPress database abstraction object.
*
* @param int $post_id The post ID.
* @param int $user_id Optional. The post author ID. Default 0.
* @return WP_Post|false The autosaved data or false on failure or when no autosave exists.
*/
function wp_get_post_autosave($post_id, $user_id = 0)
{
global $wpdb;
$autosave_name = $post_id . '-autosave-v1';
$user_id_query = (0 !== $user_id) ? "AND post_author = {$user_id}" : null;
// Construct the autosave query.
$autosave_query = "\n\t\tSELECT *\n\t\tFROM {$wpdb->posts}\n\t\tWHERE post_parent = %d\n\t\tAND post_type = 'revision'\n\t\tAND post_status = 'inherit'\n\t\tAND post_name = %s " . $user_id_query . '
ORDER BY post_date DESC
LIMIT 1';
$autosave = $wpdb->get_results($wpdb->prepare($autosave_query, $post_id, $autosave_name));
if (!$autosave) {
return false;
}
return get_post($autosave[0]);
}