¿Cómo evitar que WordPress genere el tamaño medium_large de 768px al subir imágenes?

9 ene 2017, 06:29:19
Vistas: 17.5K
Votos: 17

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?

3
Comentarios

¿Te das cuenta de que WordPress hace esto para reducir la carga del servidor y acelerar tu sitio, verdad?

Kenneth Odle Kenneth Odle
20 jun 2017 04:52:27

Tienes razón. El tamaño de imagen medium_large apareció en WordPress 4.4, junto con la función de imágenes responsivas. Tiene un ancho fijo de 768 píxeles y una altura proporcional. Esto está codificado de forma rígida en WordPress, a diferencia de los otros tamaños de imagen predeterminados. Yo también lo estoy eliminando, sin embargo WordPress y otros temas pueden depender de que este tamaño de imagen esté disponible para funcionar correctamente. Ten esto en cuenta si alguna vez necesitas cambiar a un tema predeterminado de WordPress temporalmente para depurar, o al probar temas nuevos. Si el tamaño no se generó al subir la imagen, otros temas no lo generarán automáticamente cuando sea necesario.

SherylHohman SherylHohman
30 jun 2020 16:27:04
Todas las respuestas a la pregunta 3
1
21

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();

9 ene 2017 11:49:40
Comentarios

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.

birgire birgire
9 ene 2017 12:57:28
0
10

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í.

5 jun 2018 12:55:06
1

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/

20 jun 2017 04:07:10
Comentarios

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.

lowtechsun lowtechsun
9 mar 2018 03:20:53