Quando si usa la funzione media_handle_upload, ovvero la funzione di WordPress che permette di fare l’upload di un file nell’area media, cerchiamo di evitare di far lavorare il server cercando di rigenerare miniature per immagini che magari non ci servono.
Questo ha 2 grandi benefici:
- Evita di avere cartelle con troppe immagini e di appesantire il server
- Il server usa meno risorse durante l’elaborazione e quindi il caricamento è più veloce
Chiaramente la funzione va eseguita prima di media_handle_upload, in quanto viene richiamata al suo interno la funzione che scatena l’elaborazione delle thumbnails, ovvero: wp_generate_attachment_metadata
Quindi un esempio di codice per evitare qualsiasi ridimensionamento delle immagini sarà:
// Disabilito la genarazione di tutte le sizes function mm_disable_images_sizes( $sizes ) { $sizes = []; return $sizes; } add_action( 'intermediate_image_sizes_advanced', 'mm_disable_images_sizes' ); // Eseguo upload $file_id = media_handle_upload( 'file', 0 );
Questo è una porzione di codice ma se volete disabilitare la rigenerazione delle thumbnails su tutto il vostro sito, allora potete inserire, per esempio nel file functions.php del vostro tema questa funzione
// Disabilito la genarazione di tutte le sizes function mm_disable_images_sizes( $sizes ) { $sizes = []; return $sizes; } add_action( 'intermediate_image_sizes_advanced', 'mm_disable_images_sizes' );
E se voleste disabilitarne solo alcune?
Questo invece il codice da inserire e dove andrete ad inserire la giusta size in base al vostro tema WordPress:
// Disabilito la genarazione di tutte le sizes function mm_disable_images_sizes( $sizes ) { unset($sizes['medium_large']); // disabilita solo le "medium_large" unset($sizes['1536x1536']); // disabilita una dimensione ben precisa return $sizes; } add_action( 'intermediate_image_sizes_advanced', 'mm_disable_images_sizes' );