diff --git a/src/wp-includes/media.php b/src/wp-includes/media.php index a3a8088a15..ba52555932 100644 --- a/src/wp-includes/media.php +++ b/src/wp-includes/media.php @@ -3139,7 +3139,7 @@ function wp_prepare_attachment_for_js( $attachment ) { if ( current_user_can( 'delete_post', $attachment->ID ) ) $response['nonces']['delete'] = wp_create_nonce( 'delete-post_' . $attachment->ID ); - if ( $meta && ! empty( $meta['sizes'] ) ) { + if ( $meta && ( 'image' === $type || ! empty( $meta['sizes'] ) ) ) { $sizes = array(); /** This filter is documented in wp-admin/includes/media.php */ diff --git a/tests/phpunit/tests/media.php b/tests/phpunit/tests/media.php index 2453a47d95..d8c28c2191 100644 --- a/tests/phpunit/tests/media.php +++ b/tests/phpunit/tests/media.php @@ -269,6 +269,31 @@ https://w.org' $this->assertEquals( '', $prepped['subtype'] ); } + /** + * @ticket 38965 + */ + function test_wp_prepare_attachment_for_js_without_image_sizes() { + // Create the attachement post. + $id = wp_insert_attachment( array( + 'post_title' => 'Attachment Title', + 'post_type' => 'attachment', + 'post_parent' => 0, + 'post_mime_type' => 'image/jpeg', + 'guid' => 'http://' . WP_TESTS_DOMAIN . '/wp-content/uploads/test-image.jpg', + ) ); + + // Add attachment metadata without sizes. + wp_update_attachment_metadata( $id, array( + 'width' => 50, + 'height' => 50, + 'file' => 'test-image.jpg', + ) ); + + $prepped = wp_prepare_attachment_for_js( get_post( $id ) ); + + $this->assertTrue( isset( $prepped['sizes'] ) ); + } + /** * @ticket 19067 * @expectedDeprecated wp_convert_bytes_to_hr