From 15b614acc34a5afc292d108b2b2f4c30fb3715dc Mon Sep 17 00:00:00 2001 From: audrasjb Date: Tue, 4 Jan 2022 00:20:01 +0000 Subject: [PATCH] Revisions: Improve `_set_preview` for case when autosave is missing. This change fixes an issue where autosaves are deleted when a new autosave is sent with the same data. In the block editor, this causes the preview data to be missing on post previews. The end result of this is that if one set a preview image using a block theme on a published post and preview it, the featured image is not displayed correctly. Skipping deleting the previous autosave fixes the issue. Props adamsilverstein, walbo, audrasjb, Mamaduka, hellofromTonya. Fixes #54708. Built from https://develop.svn.wordpress.org/trunk@52433 git-svn-id: http://core.svn.wordpress.org/trunk@52025 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/revision.php | 15 +++++++-------- wp-includes/version.php | 2 +- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/wp-includes/revision.php b/wp-includes/revision.php index 941002ffc6..06701eb89c 100644 --- a/wp-includes/revision.php +++ b/wp-includes/revision.php @@ -638,16 +638,15 @@ function _set_preview( $post ) { } $preview = wp_get_post_autosave( $post->ID ); - if ( ! is_object( $preview ) ) { - return $post; + + if ( is_object( $preview ) ) { + $preview = sanitize_post( $preview ); + + $post->post_content = $preview->post_content; + $post->post_title = $preview->post_title; + $post->post_excerpt = $preview->post_excerpt; } - $preview = sanitize_post( $preview ); - - $post->post_content = $preview->post_content; - $post->post_title = $preview->post_title; - $post->post_excerpt = $preview->post_excerpt; - add_filter( 'get_the_terms', '_wp_preview_terms_filter', 10, 3 ); add_filter( 'get_post_metadata', '_wp_preview_post_thumbnail_filter', 10, 3 ); diff --git a/wp-includes/version.php b/wp-includes/version.php index 3f8354e96f..cae3217657 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -16,7 +16,7 @@ * * @global string $wp_version */ -$wp_version = '5.9-beta4-52432'; +$wp_version = '5.9-beta4-52433'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.