Changeset 36121 for trunk/src/wp-includes/media.php
- Timestamp:
- 12/30/2015 01:03:11 AM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/media.php
r36120 r36121 997 997 */ 998 998 function wp_calculate_image_srcset( $size_array, $image_src, $image_meta, $attachment_id = 0 ) { 999 /** 1000 * Let plugins pre-filter the image meta to be able to fix inconsistencies in the stored data. 1001 * 1002 * @param array $image_meta The image meta data as returned by 'wp_get_attachment_metadata()'. 1003 * @param array $size_array Array of width and height values in pixels (in that order). 1004 * @param string $image_src The 'src' of the image. 1005 * @param int $attachment_id The image attachment ID or 0 if not supplied. 1006 */ 1007 $image_meta = apply_filters( 'wp_calculate_image_srcset_meta', $image_meta, $size_array, $image_src, $attachment_id ); 1008 999 1009 if ( empty( $image_meta['sizes'] ) ) { 1000 1010 return false; … … 1013 1023 1014 1024 $image_basename = wp_basename( $image_meta['file'] ); 1015 $image_baseurl = _wp_upload_dir_baseurl();1016 1025 1017 1026 /* … … 1030 1039 } 1031 1040 1032 // Uploads are (or have been) in year/month sub-directories. 1033 if ( $image_basename !== $image_meta['file'] ) { 1034 $dirname = _wp_get_attachment_relative_path( $image_meta['file'] ); 1035 1036 if ( $dirname ) { 1037 $image_baseurl = trailingslashit( $image_baseurl ) . $dirname; 1038 } 1039 } 1040 1041 $image_baseurl = trailingslashit( $image_baseurl ); 1041 // Retrieve the uploads sub-directory from the full size image. 1042 $dirname = _wp_get_attachment_relative_path( $image_meta['file'] ); 1043 1044 if ( $dirname ) { 1045 $dirname = trailingslashit( $dirname ); 1046 } 1047 1048 $image_baseurl = _wp_upload_dir_baseurl(); 1049 $image_baseurl = trailingslashit( $image_baseurl ) . $dirname; 1042 1050 1043 1051 /* … … 1061 1069 $sources = array(); 1062 1070 1071 /** 1072 * To make sure the ID matches our image src, we will check to see if any sizes in our attachment 1073 * meta match our $image_src. If no mathces are found we don't return a srcset to avoid serving 1074 * an incorrect image. See #35045. 1075 */ 1076 $src_matched = false; 1077 1063 1078 /* 1064 1079 * Loop through available images. Only use images that are resized … … 1066 1081 */ 1067 1082 foreach ( $image_sizes as $image ) { 1083 1084 // If the file name is part of the `src`, we've confirmed a match. 1085 if ( ! $src_matched && false !== strpos( $image_src, $dirname . $image['file'] ) ) { 1086 $src_matched = true; 1087 } 1068 1088 1069 1089 // Filter out images that are from previous edits. … … 1130 1150 1131 1151 // Only return a 'srcset' value if there is more than one source. 1132 if ( count( $sources ) < 2 ) {1152 if ( ! $src_matched || count( $sources ) < 2 ) { 1133 1153 return false; 1134 1154 } … … 1309 1329 strpos( wp_basename( $image_src ), $img_edit_hash[0] ) === false ) { 1310 1330 1311 return $image;1312 }1313 1314 $base_url = trailingslashit( _wp_upload_dir_baseurl() );1315 $image_base_url = $base_url;1316 1317 $dirname = _wp_get_attachment_relative_path( $image_meta['file'] );1318 if ( $dirname ) {1319 $image_base_url .= trailingslashit( $dirname );1320 }1321 1322 $all_sizes = wp_list_pluck( $image_meta['sizes'], 'file' );1323 1324 foreach ( $all_sizes as $key => $file ) {1325 $all_sizes[ $key ] = $image_base_url . $file;1326 }1327 1328 // Add the original image.1329 $all_sizes[] = $image_base_url . basename( $image_meta['file'] );1330 1331 // Bail early if the image src doesn't match any of the known image sizes.1332 if ( ! in_array( $image_src, $all_sizes ) ) {1333 1331 return $image; 1334 1332 }
Note: See TracChangeset
for help on using the changeset viewer.