From 568bef09855f2784d1f0221703522fe2632af255 Mon Sep 17 00:00:00 2001 From: Jb Audras Date: Tue, 4 Jan 2022 00:18:11 +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. git-svn-id: https://develop.svn.wordpress.org/trunk@52433 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/revision.php | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/wp-includes/revision.php b/src/wp-includes/revision.php index 941002ffc6..06701eb89c 100644 --- a/src/wp-includes/revision.php +++ b/src/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 );