From 00e63d2d2ca03d9b3c1dcf39562fa0118ec72d53 Mon Sep 17 00:00:00 2001 From: Scott Taylor Date: Thu, 13 Mar 2014 04:18:14 +0000 Subject: [PATCH] The Image Editor should apply changes to custom image sizes by checking `$_wp_additional_image_sizes` for `$size` in `wp_save_image()` before arbitrarily going to the options table. Props Otto42, SergeyBiryukov. Fixes #19889. Built from https://develop.svn.wordpress.org/trunk@27522 git-svn-id: http://core.svn.wordpress.org/trunk@27365 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-admin/includes/image-edit.php | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/wp-admin/includes/image-edit.php b/wp-admin/includes/image-edit.php index 9641c709df..2ca847ca10 100644 --- a/wp-admin/includes/image-edit.php +++ b/wp-admin/includes/image-edit.php @@ -636,6 +636,8 @@ function wp_restore_image($post_id) { * @return \stdClass */ function wp_save_image( $post_id ) { + global $_wp_additional_image_sizes; + $return = new stdClass; $success = $delete = $scaled = $nocrop = false; $post = get_post( $post_id ); @@ -770,8 +772,17 @@ function wp_save_image( $post_id ) { $backup_sizes[$tag] = $meta['sizes'][$size]; } - $crop = $nocrop ? false : get_option("{$size}_crop"); - $_sizes[ $size ] = array( 'width' => get_option("{$size}_size_w"), 'height' => get_option("{$size}_size_h"), 'crop' => $crop ); + if ( isset( $_wp_additional_image_sizes[ $size ] ) ) { + $width = intval( $_wp_additional_image_sizes[ $size ]['width'] ); + $height = intval( $_wp_additional_image_sizes[ $size ]['height'] ); + $crop = ( $nocrop ) ? false : intval( $_wp_additional_image_sizes[ $size ]['crop'] ); + } else { + $height = get_option( "{$size}_size_h" ); + $width = get_option( "{$size}_size_w" ); + $crop = ( $nocrop ) ? false : get_option( "{$size}_crop" ); + } + + $_sizes[ $size ] = array( 'width' => $width, 'height' => $height, 'crop' => $crop ); } $meta['sizes'] = array_merge( $meta['sizes'], $img->multi_resize( $_sizes ) );