Impedir que o Wordpress gere tamanho médio_large de 768px de uploads de imagens?

10

Eu segui as diretrizes para impedir que o wordpress gere muitos tamanhos diferentes para a exploração de imagens individuais através dos tamanhos de miniatura, médio e grande a 0 em Configurações> Mídia e me livrei de todas as instâncias de add_image_size e set_post_thumbnail_size no arquivo functions.php do meu tema. No entanto, quando eu carrego novas imagens, o Wordpress ainda está gerando uma versão com 768px de largura além do tamanho original. Acredito que tenha algo a ver com esta atualização, mas estou me perguntando se existe alguma maneira de impedir que isso aconteça. Acredito que li alguns tópicos em que as pessoas conseguiram inadvertidamente tentar fazer outra coisa, mas estou procurando um método claro.

user3597545
fonte
Você percebe que o WordPress faz isso para reduzir a carga do servidor e acelerar o site, certo?
precisa

Respostas:

16

Para remover o medium_largetamanho da imagem, tente removê-lo com o intermediate_image_sizesfiltro:

add_filter( 'intermediate_image_sizes', function( $sizes )
{
    return array_filter( $sizes, function( $val )
    {
        return 'medium_large' !== $val; // Filter out 'medium_large'
    } );
} );

Não tenho certeza se você está tentando remover todos os tamanhos intermediários, mas tente:

add_filter( 'intermediate_image_sizes', '__return_empty_array', 999 );

where __return_empty_array() ` é uma função básica embutida.

Devemos observar que não é possível removê-lo com

remove_image_size( 'medium_large' );

porque não é adicionado add_image_size()e, portanto, não faz parte da $_wp_additional_image_sizesmatriz global ou wp_get_additional_image_sizes();

Birgire
fonte
sim, também é possível alterar a medium_large_size_wopção 0, mas não podemos fazê-lo via, /wp-admin/options.phpporque parece ter um problema com um valor 0 (é realmente o que eu tentei antes de escrever a resposta ;-), então precisamos defini-la via API de configurações ou manualmente na wp_optionstabela.
precisa saber é
7

Remova o tamanho da imagem da mesma forma que o código principal do wordpress:

add_filter('intermediate_image_sizes', function($sizes) {
    return array_diff($sizes, ['medium_large']);
});

Lembre-se de que medium_largegeralmente é um bom tamanho para ter srcset, remova-o apenas se você entender como srcsetfunciona, se já tiver tamanhos semelhantes.

Dima Stefantsov
fonte
2

isso vai 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/

Sil2
fonte
Embora isso não tenha criado a imagem, ele criou a entrada na matriz de anexos; portanto, uma entrada falsa com o 769x no final do URL. O uso do campo padrão intermediário_image_sizes livrou-se de criar a imagem e não mostrar uma entrada para ela na matriz.
lowtechsun