¿Cómo evitar que WordPress genere el tamaño medium_large de 768px al subir imágenes?
Evito que WordPress genere los tamaños thumbnail
, medium
y large
para las imágenes que subo a la Biblioteca Multimedia, configurando sus dimensiones a 0
desde el panel: Ajustes -> Medios
.
También he eliminado todas las instancias de add_image_size
y set_post_thumbnail_size
del archivo functions.php
de mi tema.
Sin embargo, cuando subo nuevas imágenes, WordPress sigue generando una versión de 768px
de ancho (llamada 'medium_large') a partir de mi imagen original a tamaño completo. Creo que tiene que ver con esta actualización.
¿Hay alguna forma de evitar que esto suceda?

Para eliminar el tamaño de imagen medium_large
puedes intentar eliminarlo con el filtro intermediate_image_sizes
:
add_filter( 'intermediate_image_sizes', function( $sizes )
{
return array_filter( $sizes, function( $val )
{
return 'medium_large' !== $val; // Filtrar 'medium_large'
} );
} );
No estoy seguro si estás intentando eliminar todos los tamaños intermedios, pero en ese caso podrías probar:
add_filter( 'intermediate_image_sizes', '__return_empty_array', 999 );
donde __return_empty_array
() es una función integrada del núcleo.
Debemos tener en cuenta que no es posible eliminarlo con
remove_image_size( 'medium_large' );
porque no se añade con add_image_size()
y por lo tanto no es parte del array global $_wp_additional_image_sizes
o de wp_get_additional_image_sizes()
;

sí, también es posible cambiar la opción medium_large_size_w
a 0
, pero no podemos hacerlo a través de /wp-admin/options.php
porque parece tener problemas con un valor 0 allí (eso es lo que intenté primero antes de escribir la respuesta ;-), así que necesitamos configurarlo a través de la API de ajustes o manualmente en la tabla wp_options
.

Elimina el tamaño de imagen de la misma manera que lo hace el código principal de WordPress:
add_filter('intermediate_image_sizes', function($sizes) {
return array_diff($sizes, ['medium_large']);
});
Ten en cuenta que medium_large
generalmente es un buen tamaño para tener en srcset
, solo elimínalo si entiendes cómo funciona srcset
y si ya tienes tamaños similares allí.

esto funcionará
function paulund_remove_default_image_sizes( $sizes) {
unset( $sizes['medium_large']);
return $sizes;
}
add_filter('intermediate_image_sizes_advanced','paulund_remove_default_image_sizes');
https://developer.wordpress.org/reference/hooks/intermediate_image_sizes_advanced/

Aunque esto no creó la imagen en sí, sí creó la entrada en el array de adjuntos, es decir, una entrada falsa con el 769x al final de la URL. Usar el filtro predeterminado intermediate_image_sizes logró evitar la creación de la imagen y que no apareciera una entrada para ella en el array.
