WordPress adding scaled images that don’t exist (1536×1536 and 2048×2048)

I’m building a theme in _S and using native Gutenberg blocks.

I have the following code via my functions.php file to set my image sizes:

add_theme_support( 'post-thumbnails' );
add_image_size( 'carousel', 1366, 550, true );
add_image_size( 'hero', 1366, 400, true );
add_image_size( 'large-square', 392, 340, true ); 
add_image_size( 'medium-square', 279, 314, true );
add_image_size( 'small-square', 215, 170, true );
add_image_size( 'diagram', 650 ); 
add_image_size( 'full-width', 884 ); 
add_image_size( 'half', 430 ); 
add_image_size( 'third', 279 ); 
add_image_size( 'quarter', 203 );

I also have this code to remove the default image sizes:

function remove_default_image_sizes( $sizes) {
    unset( $sizes['thumbnail']);
    unset( $sizes['medium']);
    unset( $sizes['medium_large']);
    return $sizes;
}
add_filter('intermediate_image_sizes_advanced', 'remove_default_image_sizes');

When adding new images or regenerating my thumbnails via WP CLI, there are a number of generated image sizes that appear and do not recognise:

image-scaled-2048x600.jpg
image-scaled-1536x450.jpg
image-scaled-1024x300.jpg

I initially thought it could be down to the recent WordPress 5.3 update that introduced a new way to manage large images.

I tried adding this to functions.php:

add_filter( 'big_image_size_threshold', '__return_false' );

But I still get larger images that are scaled, like so:

image-scaled-2048x600.jpg

Where could WordPress be getting these image sizes from? I’m running a single plugin for the build (ACF).

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

I found the culprit!

WordPress 5.3 introduced additional image sizes which can be found via /wp-includes/media.php.

Updating my function, like so, removed the extra sizes:

function remove_default_image_sizes( $sizes) {
    unset( $sizes['large']); // Added to remove 1024
    unset( $sizes['thumbnail']);
    unset( $sizes['medium']);
    unset( $sizes['medium_large']);
    unset( $sizes['1536x1536']);
    unset( $sizes['2048x2048']);
    return $sizes;
}
add_filter('intermediate_image_sizes_advanced', 'remove_default_image_sizes');

Method 2

You could also remove those image sizes completely using remove_image_size (see: https://developer.wordpress.org/reference/functions/remove_image_size/)

Example (to be placed in your functions.php file):

remove_image_size('1536x1536');
remove_image_size('2048x2048');

This function, however, won’t work for default WP image sizes (e.g. ‘thumbnail’, ‘medium’, ‘large’, etc.). There’s a work-around though. Simply set the sizes to 0:

update_option( 'thumbnail_size_h', 0 );
update_option( 'thumbnail_size_w', 0 );
update_option( 'medium_size_h', 0 );
update_option( 'medium_size_w', 0 );
update_option( 'medium_large_size_w', 0 );
update_option( 'medium_large_size_h', 0 );
update_option( 'large_size_h', 0 );
update_option( 'large_size_w', 0 );


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x