WordPress.org

Make WordPress Core

Ticket #21963: 21963.6.diff

File 21963.6.diff, 1.5 KB (added by kovshenin, 7 years ago)
  • src/wp-includes/post.php

     
    32433243                        $wpdb->update( $wpdb->posts, array( 'guid' => get_permalink( $post_ID ) ), $where );
    32443244                }
    32453245        } else {
    3246                 if ( isset( $postarr['file'] ) ) {
     3246                if ( ! empty( $postarr['file'] ) ) {
    32473247                        update_attached_file( $post_ID, $postarr['file'] );
    32483248                }
    32493249
  • tests/phpunit/tests/post/attachments.php

     
    231231                $this->assertFalse( empty( $guid ) );
    232232        }
    233233
     234        /**
     235         * @ticket 21963
     236         */
     237        function test_update_attachment_fields() {
     238                $filename = ( DIR_TESTDATA . '/images/test-image.jpg' );
     239                $contents = file_get_contents($filename);
     240
     241                $upload = wp_upload_bits( basename( $filename ), null, $contents );
     242                $this->assertTrue( empty( $upload['error'] ) );
     243
     244                $id = $this->_make_attachment( $upload );
     245
     246                $attached_file = get_post_meta( $id, '_wp_attached_file', true );
     247
     248                $post = get_post( $id, ARRAY_A );
     249
     250                $post['post_title'] = 'title';
     251                $post['post_excerpt'] = 'caption';
     252                $post['post_content'] = 'description';
     253
     254                wp_update_post( $post );
     255
     256                // Make sure the update didn't remove the attached file.
     257                $this->assertEquals( $attached_file, get_post_meta( $id, '_wp_attached_file', true ) );
     258        }
     259
    234260}