WordPress.org

Make WordPress Core

Ticket #15149: image-intermediate-size-url-patch.diff

File image-intermediate-size-url-patch.diff, 3.4 KB (added by whoismanu, 8 years ago)
  • wp-includes/media.php

     
    144144
    145145        // try for a new style intermediate size
    146146        if ( $intermediate = image_get_intermediate_size($id, $size) ) {
    147                 $img_url = str_replace(basename($img_url), $intermediate['file'], $img_url);
     147                $img_url = $intermediate['url'];
    148148                $width = $intermediate['width'];
    149149                $height = $intermediate['height'];
    150150                $is_intermediate = true;
     
    523523function image_get_intermediate_size($post_id, $size='thumbnail') {
    524524        if ( !is_array( $imagedata = wp_get_attachment_metadata( $post_id ) ) )
    525525                return false;
     526               
     527        $file_url = wp_get_attachment_url($post_id);
    526528
    527529        // get the best one for a specified set of dimensions
    528530        if ( is_array($size) && !empty($imagedata['sizes']) ) {
     
    530532                        // already cropped to width or height; so use this size
    531533                        if ( ( $data['width'] == $size[0] && $data['height'] <= $size[1] ) || ( $data['height'] == $size[1] && $data['width'] <= $size[0] ) ) {
    532534                                $file = $data['file'];
     535                                if(!empty($data['path'])) $path = $data['path'];
     536                                if(!empty($data['url'])) $url = $data['url'];
    533537                                list($width, $height) = image_constrain_size_for_editor( $data['width'], $data['height'], $size );
    534                                 return compact( 'file', 'width', 'height' );
     538                                return image_add_path_and_url_to_meta($file_url, $imagedata['file'], compact( 'file', 'width', 'height' , 'path', 'url'));
    535539                        }
    536540                        // add to lookup table: area => size
    537541                        $areas[$data['width'] * $data['height']] = $_size;
     
    550554                                                continue;
    551555                                        // If we're still here, then we're going to use this size
    552556                                        $file = $data['file'];
     557                                        if(!empty($data['path'])) $path = $data['path'];
     558                                        if(!empty($data['url'])) $url = $data['url'];
    553559                                        list($width, $height) = image_constrain_size_for_editor( $data['width'], $data['height'], $size );
    554                                         return compact( 'file', 'width', 'height' );
     560                                        return image_add_path_and_url_to_meta($file_url, $imagedata['file'], compact( 'file', 'width', 'height' , 'path', 'url'));
    555561                                }
    556562                        }
    557563                }
     
    561567                return false;
    562568
    563569        $data = $imagedata['sizes'][$size];
    564         // include the full filesystem path of the intermediate file
    565         if ( empty($data['path']) && !empty($data['file']) ) {
    566                 $file_url = wp_get_attachment_url($post_id);
    567                 $data['path'] = path_join( dirname($imagedata['file']), $data['file'] );
     570        return image_add_path_and_url_to_meta($file_url, $imagedata['file'], $data);
     571}
     572
     573// include the full filesystem path of the intermediate file
     574function image_add_path_and_url_to_meta($file_url, $file, $data){
     575        if ( empty($data['path']) && !empty($data['file']) )
     576                $data['path'] = path_join( dirname($file), $data['file'] );
     577        if ( empty($data['url']) && !empty($data['file']) )
    568578                $data['url'] = path_join( dirname($file_url), $data['file'] );
    569         }
    570579        return $data;
    571580}
    572581
  • wp-admin/includes/image-edit.php

     
    202202
    203203        if ( $filepath && file_exists($filepath) ) {
    204204                if ( 'full' != $size && ( $data = image_get_intermediate_size($post_id, $size) ) )
    205                         $filepath = path_join( dirname($filepath), $data['file'] );
     205                        $filepath = $data['path'];
    206206        } elseif ( WP_Http_Fopen::test() ) {
    207207                $filepath = wp_get_attachment_url($post_id);
    208208        }