Make WordPress Core

Ticket #37697: 37697.4.diff

File 37697.4.diff, 2.1 KB (added by joemcgill, 8 years ago)
  • src/wp-includes/revision.php

    diff --git src/wp-includes/revision.php src/wp-includes/revision.php
    index b588621..07a986c 100644
    function _wp_preview_post_thumbnail_filter( $value, $post_id, $meta_key ) { 
    594594                return $value;
    595595        }
    596596
    597         if ( empty( $_REQUEST['_thumbnail_id'] ) || $post->ID != $post_id || '_thumbnail_id' != $meta_key || 'revision' == $post->post_type ) {
     597        if ( empty( $_REQUEST['_thumbnail_id'] ) ||
     598             empty( $_REQUEST['preview_id'] ) ||
     599             $post->ID != $post_id ||
     600             '_thumbnail_id' != $meta_key ||
     601             'revision' == $post->post_type ||
     602             $post_id != $_REQUEST['preview_id']
     603        ) {
    598604                return $value;
    599605        }
    600606
  • tests/phpunit/tests/post/thumbnails.php

    diff --git tests/phpunit/tests/post/thumbnails.php tests/phpunit/tests/post/thumbnails.php
    index 827a339..744c077 100644
    class Tests_Post_Thumbnail_Template extends WP_UnitTestCase { 
    242242
    243243                $GLOBALS['post'] = self::$post;
    244244                $_REQUEST['_thumbnail_id'] = self::$attachment_id;
     245                $_REQUEST['preview_id'] = self::$post->ID;
    245246
    246247                $result = _wp_preview_post_thumbnail_filter( '', self::$post->ID, '_thumbnail_id' );
     248
     249                // Clean up.
     250                $GLOBALS['post'] = $old_post;
     251                unset( $_REQUEST['_thumbnail_id'] );
     252                unset( $_REQUEST['preview_id'] );
     253
    247254                $this->assertEquals( self::$attachment_id, $result );
     255        }
     256
     257        /**
     258         * @ticket 37697
     259         */
     260        function test__wp_preview_post_thumbnail_filter_secondary_post() {
     261                $old_post = isset( $GLOBALS['post'] ) ? $GLOBALS['post'] : null;
    248262
     263                $secondary_post = self::factory()->post->create( array(
     264                                'post_stauts' => 'publish',
     265                        )
     266                );
     267
     268                $GLOBALS['post'] = self::$post;
     269                $_REQUEST['_thumbnail_id'] = self::$attachment_id;
     270                $_REQUEST['preview_id'] = $secondary_post;
     271
     272                $result = _wp_preview_post_thumbnail_filter( '', self::$post->ID, '_thumbnail_id' );
     273
     274                // Clean up.
     275                $GLOBALS['post'] = $old_post;
    249276                unset( $_REQUEST['_thumbnail_id'] );
    250                 if ( null === $old_post ) {
    251                         unset( $GLOBALS['post'] );
    252                 } else {
    253                         $GLOBALS['post'] = $old_post;
    254                 }
     277                unset( $_REQUEST['preview_id'] );
     278
     279                $this->assertEmpty( $result );
    255280        }
    256281
    257282        /**