function filter_image_sizes( $sizes) {
    unset( $sizes['1536x1536']); // disable 2x medium-large size
    unset( $sizes['2048x2048']); // disable 2x large size
    return $sizes;
add_filter('intermediate_image_sizes_advanced', 'filter_image_sizes');

I check the uploads folder and only the original image is being added now. I check the docs and I don't think I see it removing all the crops because of it.

Am I doing something wrong? When removing those sizes, do I need to add back the default sizes?

  • 1
    Your code, as written, should work. Is this exactly how it's written in your plugin / theme, or have you simplified it to post here? If the latter, check your code to make sure that return $sizes; isn't in an if() somewhere where it's only returning sometimes. – Pat J Feb 18 at 4:05
  • @PatJ Hello! Yes it's exactly what is in the theme. I ended having to loop through approved ones and unset what's not in the array – RMH Feb 20 at 0:37
add_filter( 'intermediate_image_sizes_advanced', function ( $sizes ) {

$allowed = [ 'thumbnail', 'medium', 'large', 'medium_large' ];
foreach ( $sizes as $name => $size ) {
    if ( ! in_array( $name, $allowed ) ) {
        unset( $sizes[ $name ] );

return $sizes;
} );

I ended up setting an array with the crops I would allow and then unset anything that wasn't there.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.