Media: Don't generate responsive image attributes if `src` does not match ID in `wp-image-` class.
We rely on the `wp-image-` class to quickly find an attachment ID to add responsive image attributes. To avoid incorrect images being displayed, do not add these attributes if the `src` does not match the meta from the attachment ID in the class. Props azaozz, kovshenin, joemcgill. Fixes: #34898. Built from https://develop.svn.wordpress.org/trunk@35820 git-svn-id: http://core.svn.wordpress.org/trunk@35784 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
3c0c5e6ad5
commit
6f3da8d57b
|
@ -1278,6 +1278,28 @@ function wp_image_add_srcset_and_sizes( $image, $image_meta, $attachment_id ) {
|
|||
return $image;
|
||||
}
|
||||
|
||||
$base_url = trailingslashit( _wp_upload_dir_baseurl() );
|
||||
$image_base_url = $base_url;
|
||||
|
||||
$dirname = dirname( $image_meta['file'] );
|
||||
if ( $dirname !== '.' ) {
|
||||
$image_base_url .= trailingslashit( $dirname );
|
||||
}
|
||||
|
||||
$all_sizes = wp_list_pluck( $image_meta['sizes'], 'file' );
|
||||
|
||||
foreach ( $all_sizes as $key => $file ) {
|
||||
$all_sizes[ $key ] = $image_base_url . $file;
|
||||
}
|
||||
|
||||
// Add the original image.
|
||||
$all_sizes[] = $base_url . $image_meta['file'];
|
||||
|
||||
// Bail early if the image src doesn't match any of the known image sizes.
|
||||
if ( ! in_array( $image_src, $all_sizes ) ) {
|
||||
return $image;
|
||||
}
|
||||
|
||||
$width = preg_match( '/ width="([0-9]+)"/', $image, $match_width ) ? (int) $match_width[1] : 0;
|
||||
$height = preg_match( '/ height="([0-9]+)"/', $image, $match_height ) ? (int) $match_height[1] : 0;
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
*
|
||||
* @global string $wp_version
|
||||
*/
|
||||
$wp_version = '4.5-alpha-35818';
|
||||
$wp_version = '4.5-alpha-35820';
|
||||
|
||||
/**
|
||||
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
||||
|
|
Loading…
Reference in New Issue