Impedire a WordPress di generare la dimensione medium_large 768px per i caricamenti di immagini?

9 gen 2017, 06:29:19
Visualizzazioni: 17.5K
Voti: 17

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?

3
Commenti

Ti rendi conto che WordPress fa questo per ridurre il carico sul server e velocizzare il tuo sito, vero?

Kenneth Odle Kenneth Odle
20 giu 2017 04:52:27

Hai ragione. La dimensione immagine medium_large è stata introdotta in WordPress 4.4, insieme alla funzionalità di immagini responsive. Ha una larghezza fissa di 768 px e un'altezza proporzionale. Questo è hard-coded in WordPress, a differenza delle altre dimensioni immagini predefinite. Anche io la rimuovo, tuttavia WordPress e altri temi potrebbero dipendere dalla disponibilità di questa dimensione per funzionare correttamente. Tienilo a mente se mai dovessi passare temporaneamente a un tema WordPress predefinito per il debugging, o quando provi nuovi temi. Se la dimensione non è stata generata al momento del caricamento dell'immagine, altri temi non la genereranno automaticamente quando necessario

SherylHohman SherylHohman
30 giu 2020 16:27:04
Tutte le risposte alla domanda 3
1
21

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();

9 gen 2017 11:49:40
Commenti

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.

birgire birgire
9 gen 2017 12:57:28
0
10

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.

5 giu 2018 12:55:06
1

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/

20 giu 2017 04:07:10
Commenti

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.

lowtechsun lowtechsun
9 mar 2018 03:20:53