Impedire a WordPress di generare la dimensione medium_large 768px per i caricamenti di immagini?
Ho impedito a WordPress di generare le dimensioni thumbnail
, medium
e large
per le immagini che carico nella Libreria multimediale, impostando le loro dimensioni a 0
dal pannello Impostazioni -> Media
.
Ho anche rimosso tutte le istanze di add_image_size
e set_post_thumbnail_size
dal file functions.php
del mio tema.
Tuttavia, quando carico nuove immagini, WordPress continua a generare una versione con larghezza 768px
(chiamata 'medium_large') dalla mia immagine originale a dimensione intera. Credo abbia a che fare con questo aggiornamento.
Esiste un modo per evitare che questo accada?
Per rimuovere la dimensione dell'immagine medium_large
puoi provare a rimuoverla con il filtro intermediate_image_sizes
:
add_filter( 'intermediate_image_sizes', function( $sizes )
{
return array_filter( $sizes, function( $val )
{
return 'medium_large' !== $val; // Filtra 'medium_large'
} );
} );
Non sono sicuro se stai cercando di rimuovere tutte le dimensioni intermedie, ma in tal caso potresti provare:
add_filter( 'intermediate_image_sizes', '__return_empty_array', 999 );
dove __return_empty_array
() è una funzione integrata del core.
Dovremmo notare che non è possibile rimuoverla con
remove_image_size( 'medium_large' );
perché non è stata aggiunta con add_image_size()
e quindi non fa parte dell'array globale $_wp_additional_image_sizes
o di wp_get_additional_image_sizes()
;

sì, è anche possibile cambiare l'opzione medium_large_size_w
a 0
, ma non possiamo farlo tramite /wp-admin/options.php
perché sembra esserci un problema con un valore 0 (è proprio quello che ho provato a fare prima di scrivere la risposta ;-), quindi dobbiamo impostarlo tramite l'API delle impostazioni o manualmente nella tabella wp_options
.

Rimuovi la dimensione dell'immagine allo stesso modo in cui lo fa il codice core di WordPress:
add_filter('intermediate_image_sizes', function($sizes) {
return array_diff($sizes, ['medium_large']);
});
Tieni presente che medium_large
è generalmente una buona dimensione da avere in srcset
, rimuovila solo se hai compreso come funziona srcset
e se hai già dimensioni simili presenti.

questo funzionerà
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/

Anche se questo non ha creato l'immagine stessa, ha comunque creato una voce nell'array degli allegati, quindi una voce fittizia con il 769x alla fine dell'URL. Utilizzando il filtro predefinito intermediate_image_sizes si è riusciti a evitare la creazione dell'immagine senza mostrare una voce per essa nell'array.
