Cum să preîntâmpini generarea dimensiunii medium_large (768px) pentru încărcările de imagini în WordPress?
Am reușit să împiedic WordPress să genereze dimensiunile thumbnail
, medium
și large
pentru imaginile încărcate în Biblioteca Media, setând dimensiunile lor la 0
din panoul Settings -> Media
.
De asemenea, am eliminat toate apelurile la add_image_size
și set_post_thumbnail_size
din fișierul functions.php
al temei mele.
Totuși, atunci când încarc imagini noi, WordPress continuă să genereze o versiune cu lățimea de 768px
(numită 'medium_large') din imaginea originală. Cred că are legătură cu această actualizare.
Există vreo modalitate de a preveni acest lucru?

Pentru a elimina dimensiunea de imagine medium_large
poți încerca să o elimini folosind filtrul intermediate_image_sizes
:
add_filter( 'intermediate_image_sizes', function( $sizes )
{
return array_filter( $sizes, function( $val )
{
return 'medium_large' !== $val; // Filtrează 'medium_large'
} );
} );
Dacă încerci să elimini toate dimensiunile intermediare, poți încerca:
add_filter( 'intermediate_image_sizes', '__return_empty_array', 999 );
unde __return_empty_array
() este o funcție încorporată în nucleu.
Trebuie menționat că nu este posibil să o elimini cu:
remove_image_size( 'medium_large' );
deoarece aceasta nu este adăugată cu add_image_size()
și, prin urmare, nu face parte din tabloul global $_wp_additional_image_sizes
sau din funcția wp_get_additional_image_sizes()
;

da, este de asemenea posibil să modifici opțiunea medium_large_size_w
în 0
, dar nu putem face asta prin /wp-admin/options.php
deoarece pare să aibă probleme cu o valoare 0 acolo (asta este de fapt ce am încercat mai întâi înainte să scriu răspunsul ;-), așa că trebuie să o setăm prin API-ul de setări sau manual în tabela wp_options
.

Elimină dimensiunea imaginii în același mod în care o face codul WordPress:
add_filter('intermediate_image_sizes', function($sizes) {
return array_diff($sizes, ['medium_large']);
});
Ține minte că medium_large
este de obicei o dimensiune bună de avut în srcset
, elimin-o doar dacă înțelegi cum funcționează srcset
și dacă ai deja dimensiuni similare acolo.

acest lucru va funcționa
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/

Deși acest lucru nu a creat imaginea în sine, a creat totuși intrarea în tabloul de atașamente, deci o intrare falsă cu 769x la sfârșitul URL-ului. Folosirea setării implicite intermediate_image_sizes a eliminat crearea imaginii și afișarea unei intrări pentru aceasta în tablou.
