add_filter('wp_handle_upload', function ($file) {
// Definisce le dimensioni massime come costanti
define('MAX_WIDTH', 1920);
define('MAX_HEIGHT', 800);
// Controlla se il file è un'immagine
$mime_type = mime_content_type($file['file']);
if (strpos($mime_type, 'image') === false) {
return $file;
}
// Ottiene le dimensioni dell'immagine
$image_size = getimagesize($file['file']);
if (!$image_size) {
error_log("Errore: impossibile ottenere le dimensioni dell'immagine per il file {$file['file']}");
return $file;
}
// Controlla se l'immagine è più piccola delle dimensioni impostate
if ($image_size[0] <= MAX_WIDTH && $image_size[1] <= MAX_HEIGHT) {
return $file;
}
// Ridimensiona l'immagine mantenendo il rapporto di aspetto
$image_editor = wp_get_image_editor($file['file']);
if (is_wp_error($image_editor)) {
error_log("Errore: impossibile creare l'editor di immagini per il file {$file['file']}");
return $file;
}
$result = $image_editor->resize(MAX_WIDTH, MAX_HEIGHT, false);
if (is_wp_error($result)) {
error_log("Errore: impossibile ridimensionare l'immagine per il file {$file['file']}");
return $file;
}
$saved = $image_editor->save($file['file']);
if (is_wp_error($saved)) {
error_log("Errore: impossibile salvare l'immagine ridimensionata per il file {$file['file']}");
}
return $file;
});
Copia il codice nel file functions.php del tuo tema child attivo o utilizza il plugin Code Snippets