+/**
+ * Filters post thumbnail lookup to set the post thumbnail.
+ *
+ * @since 4.6.0
+ * @access private
+ *
+ * @param null|array|string $value The value to return - a single metadata value, or an array of values.
+ * @param int $post_id Post ID.
+ * @param string $meta_key Meta key.
+ * @return null|array The default return value or the post thumbnail meta array.
+ */
+function _wp_preview_post_thumbnail_filter( $value, $post_id, $meta_key ) {
+ if ( ! $post = get_post() ) {
+ return $value;
+ }
+
+ if ( empty( $_REQUEST['_thumbnail_id'] ) ||
+ empty( $_REQUEST['preview_id'] ) ||
+ $post->ID != $post_id ||
+ '_thumbnail_id' != $meta_key ||
+ 'revision' == $post->post_type ||
+ $post_id != $_REQUEST['preview_id']
+ ) {
+ return $value;
+ }
+
+ $thumbnail_id = intval( $_REQUEST['_thumbnail_id'] );
+ if ( $thumbnail_id <= 0 ) {
+ return '';
+ }
+
+ return strval( $thumbnail_id );
+}
+