WordPress.org

Make WordPress Core

Ticket #19889: 19889.4.diff

File 19889.4.diff, 1.4 KB (added by SergeyBiryukov, 5 years ago)
  • src/wp-admin/includes/image-edit.php

     
    557557 * @return \stdClass
    558558 */
    559559function wp_save_image( $post_id ) {
     560        global $_wp_additional_image_sizes;
     561
    560562        $return = new stdClass;
    561563        $success = $delete = $scaled = $nocrop = false;
    562564        $post = get_post( $post_id );
     
    691693                                        $backup_sizes[$tag] = $meta['sizes'][$size];
    692694                        }
    693695
    694                         $crop = $nocrop ? false : get_option("{$size}_crop");
    695                         $_sizes[ $size ] = array( 'width' => get_option("{$size}_size_w"), 'height' => get_option("{$size}_size_h"), 'crop' => $crop );
     696                        if ( isset( $_wp_additional_image_sizes[ $size ] ) ) {
     697                                $width  = intval( $_wp_additional_image_sizes[ $size ]['width'] );
     698                                $height = intval( $_wp_additional_image_sizes[ $size ]['height'] );
     699                                $crop   = ( $nocrop ) ? false : intval( $_wp_additional_image_sizes[ $size ]['crop'] );
     700                        } else {
     701                                $height = get_option( "{$size}_size_h" );
     702                                $width  = get_option( "{$size}_size_w" );
     703                                $crop   = ( $nocrop ) ? false : get_option( "{$size}_crop" );
     704                        }
     705
     706                        $_sizes[ $size ] = array( 'width' => $width, 'height' => $height, 'crop' => $crop );
    696707                }
    697708
    698709                $meta['sizes'] = array_merge( $meta['sizes'], $img->multi_resize( $_sizes ) );