Responsive images: do not generate `srcset` for GIFs that are inserted at full size. Prevents breaking animated GIFs.

Props joemcgill.
Fixes #34528.

git-svn-id: https://develop.svn.wordpress.org/trunk@35524 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Andrew Ozz 2015-11-04 21:43:44 +00:00
parent 89227eebe3
commit 611ddaf9bf
2 changed files with 46 additions and 0 deletions

View File

@ -983,6 +983,13 @@ function wp_calculate_image_srcset( $image_src, $size_array, $image_meta, $attac
return false;
}
// Don't add srcset attributes to (animated) gifs that are inserted at full size.
if ( isset( $image_sizes['thumbnail']['mime-type'] ) && 'image/gif' === $image_sizes['thumbnail']['mime-type'] &&
false !== strpos( $image_src, $image_meta['file'] ) ) {
return false;
}
$image_basename = wp_basename( $image_meta['file'] );
$image_baseurl = _wp_upload_dir_baseurl();

View File

@ -963,4 +963,43 @@ EOF;
// The content filter should return the image unchanged.
$this->assertSame( $image_html, wp_make_content_images_responsive( $image_html ) );
}
/**
* @ticket 33641
* @ticket 34528
*/
function test_wp_calculate_image_srcset_animated_gifs() {
// Mock meta for an animated gif.
$image_meta = array(
'width' => 1200,
'height' => 600,
'file' => 'animated.gif',
'sizes' => array(
'thumbnail' => array(
'file' => 'animated-150x150.gif',
'width' => 150,
'height' => 150,
'mime-type' => 'image/gif'
),
'medium' => array(
'file' => 'animated-300x150.gif',
'width' => 300,
'height' => 150,
'mime-type' => 'image/gif'
),
'large' => array(
'file' => 'animated-1024x512.gif',
'width' => 1024,
'height' => 512,
'mime-type' => 'image/gif'
),
)
);
$image_src = 'http://' . WP_TESTS_DOMAIN . '/wp-content/uploads/' . $image_meta['file'];
// Test with soft resized size array.
$size_array = array(900, 450);
$this->assertFalse( wp_calculate_image_srcset( $image_src, $size_array, $image_meta ) );
}
}