Make WordPress Core


Ignore:
Timestamp:
12/07/2015 08:07:37 PM (9 years ago)
Author:
mikeschroder
Message:

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.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/media.php

    r35811 r35820  
    12761276        strpos( wp_basename( $image_src ), $img_edit_hash[0] ) === false ) {
    12771277
     1278        return $image;
     1279    }
     1280
     1281    $base_url = trailingslashit( _wp_upload_dir_baseurl() );
     1282    $image_base_url = $base_url;
     1283
     1284    $dirname = dirname( $image_meta['file'] );
     1285    if ( $dirname !== '.' ) {
     1286        $image_base_url .= trailingslashit( $dirname );
     1287    }
     1288
     1289    $all_sizes = wp_list_pluck( $image_meta['sizes'], 'file' );
     1290
     1291    foreach ( $all_sizes as $key => $file ) {
     1292        $all_sizes[ $key ] = $image_base_url . $file;
     1293    }
     1294
     1295    // Add the original image.
     1296    $all_sizes[] = $base_url . $image_meta['file'];
     1297
     1298    // Bail early if the image src doesn't match any of the known image sizes.
     1299    if ( ! in_array( $image_src, $all_sizes ) ) {
    12781300        return $image;
    12791301    }
Note: See TracChangeset for help on using the changeset viewer.