Ticket #56288: 56288.6.diff
File 56288.6.diff, 9.7 KB (added by , 2 years ago) |
---|
-
src/wp-admin/includes/image.php
diff --git src/wp-admin/includes/image.php src/wp-admin/includes/image.php index b0cffc504f..d3d65fead1 100644
function _wp_filter_image_sizes_additional_mime_type_support( $sizes, $attachmen 672 672 'medium' => true, 673 673 'medium_large' => true, 674 674 'large' => true, 675 'post-thumbnail' => true,676 675 ); 677 676 677 // Include any sizes that were added with `add_image_size`. 678 $additional_image_sizes = array_map( 679 '__return_true', 680 array_filter( 681 wp_get_additional_image_sizes(), 682 function( $size ) { 683 return isset( $size['additional_mimes'] ) && $size['additional_mimes']; 684 } 685 ) 686 ); 687 $enabled_sizes = array_merge( $enabled_sizes, $additional_image_sizes ); 688 678 689 /** 679 690 * Filter the sizes that support secondary mime type output. Developers can use this 680 691 * to control the output of additional mime type sub-sized images. -
src/wp-content/themes/twentyeleven/functions.php
diff --git src/wp-content/themes/twentyeleven/functions.php src/wp-content/themes/twentyeleven/functions.php index 12593aaddf..ee95afd96b 100644
if ( ! function_exists( 'twentyeleven_setup' ) ) : 227 227 * Add Twenty Eleven's custom image sizes. 228 228 * Used for large feature (header) images. 229 229 */ 230 add_image_size( 'large-feature', $custom_header_support['width'], $custom_header_support['height'], true );230 add_image_size( 'large-feature', $custom_header_support['width'], $custom_header_support['height'], true, true ); 231 231 // Used for featured posts if a large-feature doesn't exist. 232 add_image_size( 'small-feature', 500, 300 );232 add_image_size( 'small-feature', 500, 300, false, true ); 233 233 234 234 // Default custom headers packaged with the theme. %s is a placeholder for the theme template directory URI. 235 235 register_default_headers( -
src/wp-content/themes/twentyfourteen/functions.php
diff --git src/wp-content/themes/twentyfourteen/functions.php src/wp-content/themes/twentyfourteen/functions.php index 0695bcce6d..0896f84410 100644
if ( ! function_exists( 'twentyfourteen_setup' ) ) : 122 122 // Enable support for Post Thumbnails, and declare two sizes. 123 123 add_theme_support( 'post-thumbnails' ); 124 124 set_post_thumbnail_size( 672, 372, true ); 125 add_image_size( 'twentyfourteen-full-width', 1038, 576, true );125 add_image_size( 'twentyfourteen-full-width', 1038, 576, true, true ); 126 126 127 127 // This theme uses wp_nav_menu() in two locations. 128 128 register_nav_menus( -
src/wp-content/themes/twentyseventeen/functions.php
diff --git src/wp-content/themes/twentyseventeen/functions.php src/wp-content/themes/twentyseventeen/functions.php index 3d933989c2..d8b95b8568 100644
function twentyseventeen_setup() { 56 56 */ 57 57 add_theme_support( 'post-thumbnails' ); 58 58 59 add_image_size( 'twentyseventeen-featured-image', 2000, 1200, true );59 add_image_size( 'twentyseventeen-featured-image', 2000, 1200, true, true ); 60 60 61 add_image_size( 'twentyseventeen-thumbnail-avatar', 100, 100, true );61 add_image_size( 'twentyseventeen-thumbnail-avatar', 100, 100, true, true ); 62 62 63 63 // Set the default content width. 64 64 $GLOBALS['content_width'] = 525; -
src/wp-content/themes/twentytwenty/functions.php
diff --git src/wp-content/themes/twentytwenty/functions.php src/wp-content/themes/twentytwenty/functions.php index c8944e03c1..21a561fdaf 100644
function twentytwenty_theme_support() { 63 63 set_post_thumbnail_size( 1200, 9999 ); 64 64 65 65 // Add custom image size used in Cover Template. 66 add_image_size( 'twentytwenty-fullscreen', 1980, 9999 );66 add_image_size( 'twentytwenty-fullscreen', 1980, 9999, false, true ); 67 67 68 68 // Custom logo. 69 69 $logo_width = 120; -
src/wp-includes/media.php
diff --git src/wp-includes/media.php src/wp-includes/media.php index 456cd7c988..87cb317dee 100644
function image_downsize( $id, $size = 'medium' ) { 275 275 * Register a new image size. 276 276 * 277 277 * @since 2.9.0 278 * @since 6.1.0 Add the $additional_mimes parameter. 278 279 * 279 280 * @global array $_wp_additional_image_sizes Associative array of additional image sizes. 280 281 * 281 * @param string $name Image size identifier. 282 * @param int $width Optional. Image width in pixels. Default 0. 283 * @param int $height Optional. Image height in pixels. Default 0. 284 * @param bool|array $crop Optional. Image cropping behavior. If false, the image will be scaled (default), 285 * If true, image will be cropped to the specified dimensions using center positions. 286 * If an array, the image will be cropped using the array to specify the crop location. 287 * Array values must be in the format: array( x_crop_position, y_crop_position ) where: 288 * - x_crop_position accepts: 'left', 'center', or 'right'. 289 * - y_crop_position accepts: 'top', 'center', or 'bottom'. 282 * @param string $name Image size identifier. 283 * @param int $width Optional. Image width in pixels. Default 0. 284 * @param int $height Optional. Image height in pixels. Default 0. 285 * @param bool|array $crop Optional. Image cropping behavior. If false, the image will be scaled (default), 286 * If true, image will be cropped to the specified dimensions using center positions. 287 * If an array, the image will be cropped using the array to specify the crop location. 288 * Array values must be in the format: array( x_crop_position, y_crop_position ) where: 289 * - x_crop_position accepts: 'left', 'center', or 'right'. 290 * - y_crop_position accepts: 'top', 'center', or 'bottom'. 291 * @param bool|null $additional_mimes Optional. Whether to output secondary mimes for this image size. If not passed, 292 * WordPres core will determine whether true or false. Sizes should be registered 293 * with false only if they are not intended for use in a front-end context. 290 294 */ 291 function add_image_size( $name, $width = 0, $height = 0, $crop = false ) {295 function add_image_size( $name, $width = 0, $height = 0, $crop = false, $additional_mimes = null ) { 292 296 global $_wp_additional_image_sizes; 293 297 298 if ( null === $additional_mimes ) { 299 // In 6.20, trigger a warning if the size was registered without providing an `additional_mimes` parameter. 300 $additional_mimes = false; 301 } 302 294 303 $_wp_additional_image_sizes[ $name ] = array( 295 'width' => absint( $width ), 296 'height' => absint( $height ), 297 'crop' => $crop, 304 'width' => absint( $width ), 305 'height' => absint( $height ), 306 'crop' => $crop, 307 'additional_mimes' => $additional_mimes, 298 308 ); 299 309 } 300 310 … … function remove_image_size( $name ) { 345 355 * An array can specify positioning of the crop area. Default false. 346 356 */ 347 357 function set_post_thumbnail_size( $width = 0, $height = 0, $crop = false ) { 348 add_image_size( 'post-thumbnail', $width, $height, $crop );358 add_image_size( 'post-thumbnail', $width, $height, $crop, true ); 349 359 } 350 360 351 361 /** … … function wp_media_personal_data_exporter( $email_address, $page = 1 ) { 5316 5326 */ 5317 5327 function _wp_add_additional_image_sizes() { 5318 5328 // 2x medium_large size. 5319 add_image_size( '1536x1536', 1536, 1536 );5329 add_image_size( '1536x1536', 1536, 1536, false, true ); 5320 5330 // 2x large size. 5321 add_image_size( '2048x2048', 2048, 2048 );5331 add_image_size( '2048x2048', 2048, 2048, false, true ); 5322 5332 } 5323 5333 5324 5334 /** -
tests/phpunit/tests/media.php
diff --git tests/phpunit/tests/media.php tests/phpunit/tests/media.php index daf585d548..f41dd0a160 100644
VIDEO; 1154 1154 $this->assertSame( 600, $sizes['test-size']['height'] ); 1155 1155 } 1156 1156 1157 /** 1158 * @ticket 56288 1159 */ 1160 public function test_add_image_size_additional_mimes() { 1161 add_image_size( 'test-size-with-additional-mimes', 200, 600, false, true ); 1162 add_image_size( 'test-size-without-additional-mimes', 200, 600, false, false ); 1163 1164 $sizes = wp_get_additional_image_sizes(); 1165 1166 remove_image_size( 'test-size-with-additional-mimes' ); 1167 remove_image_size( 'test-size-without-additional-mimes' ); 1168 1169 $this->assertArrayHasKey( 'test-size-with-additional-mimes', $sizes ); 1170 $this->assertArrayHasKey( 'test-size-without-additional-mimes', $sizes ); 1171 $this->assertTrue( $sizes['test-size-with-additional-mimes']['additional_mimes'] ); 1172 $this->assertFalse( $sizes['test-size-without-additional-mimes']['additional_mimes'] ); 1173 } 1174 1175 /** 1176 * @ticket 56288 1177 */ 1178 public function test__wp_filter_image_sizes_additional_mime_type_support_with_add_image_size() { 1179 $default_sizes = wp_get_registered_image_subsizes(); 1180 1181 add_image_size( 'test-size-with-additional-mimes', 200, 600, false, true ); 1182 add_image_size( 'test-size-without-additional-mimes', 200, 600, false, false ); 1183 1184 $all_sizes = wp_get_registered_image_subsizes(); 1185 $filtered_sizes = _wp_filter_image_sizes_additional_mime_type_support( $all_sizes, $this->large_id ); 1186 1187 remove_image_size( 'test-size-with-additional-mimes' ); 1188 remove_image_size( 'test-size-without-additional-mimes' ); 1189 1190 $expected_size_names = array_keys( $default_sizes ); 1191 $expected_size_names[] = 'test-size-with-additional-mimes'; 1192 1193 $this->assertSame( $expected_size_names, array_keys( $filtered_sizes ) ); 1194 } 1195 1157 1196 /** 1158 1197 * @ticket 26768 1159 1198 */