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.
birgire
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.
lowtechsun