Czy uniemożliwić Wordpressowi generowanie średnich zdjęć o wielkości 768 pikseli?

10

Postępowałem zgodnie z wytycznymi, aby zapobiec generowaniu przez Wordpress wielu różnych rozmiarów dla pojedynczych zdjęć przesyłanych przez rozmiary miniaturek, średnich i dużych do 0 w Ustawieniach> Media i pozbyłem się wszystkich instancji add_image_size i set_post_thumbnail_size w pliku functions.php mojego motyw. Jednak gdy przesyłam nowe obrazy, Wordpress wciąż generuje wersję o szerokości 768px przekraczającą oryginalny pełny rozmiar. Wierzę, że ma to coś wspólnego z tą aktualizacją, ale zastanawiam się, czy jest jakiś sposób, aby temu zapobiec? Wydaje mi się, że przeczytałem kilka wątków, w których ludzie nieumyślnie to osiągnęli, próbując zrobić coś innego, ale szukam jednoznacznej metody.

użytkownik3597545
źródło
Zdajesz sobie sprawę, że WordPress robi to, aby zmniejszyć obciążenie serwera i przyspieszyć twoją stronę, prawda?
Kenneth Odle,

Odpowiedzi:

16

Aby usunąć medium_largerozmiar obrazu, możesz spróbować usunąć go za pomocą intermediate_image_sizesfiltra:

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

Nie jestem pewien, czy próbujesz usunąć wszystkie rozmiary pośrednie, ale możesz wypróbować:

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

gdzie __return_empty_array() ` jest wbudowaną funkcją podstawową.

Należy pamiętać, że nie można go usunąć za pomocą

remove_image_size( 'medium_large' );

ponieważ nie jest dodawany add_image_size()do $_wp_additional_image_sizesglobalnej tablicy ani dlatego nie jest częścią tej tablicy wp_get_additional_image_sizes();

birgire
źródło
tak, można również zmienić medium_large_size_wopcję na 0, ale nie możemy tego zrobić, /wp-admin/options.phpponieważ wydaje się, że ma tam problem z wartością 0 (tak właśnie próbowałem przed napisaniem odpowiedzi ;-), więc musimy ją ustawić poprzez ustawienia API lub ręcznie w wp_optionstabeli.
birgire,
7

Usuń rozmiar obrazu w taki sam sposób, jak robi to podstawowy kod Wordpress:

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

Pamiętaj, że medium_largeogólnie jest to dobry rozmiar srcset, usuń go tylko wtedy, gdy rozumiesz, jak to srcsetdziała, jeśli masz już podobne rozmiary.

Dima Stefantsov
źródło
2

to zadziała


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
źródło
Chociaż nie stworzyło to samego obrazu, utworzyło jednak pozycję w tablicy załączników, więc fałszywy wpis z 769x na końcu adresu URL. Używając domyślnego fildera, rozmiar_pośredniego_obrazu pozbył się tworzenia obrazu i nie pokazywał wpisu w tablicy.
lowtechsun