Limita la dimensione dell’immagine caricata

Imposta una larghezza e un'altezza massime per il caricamento delle immagini per risparmiare spazio.
PHP
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

Lascia un commento

I commenti non pertinenti allo snippet o offensivi non verranno approvati.

Se desideri condividere del codice, per favore fallo in questo modo: [php]il tuo codice[/php].

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

DMM WEB DESIGN
Questo sito utilizza cookie tecnici e di profilazione. Cliccando su accetta si autorizzano tutti i cookie di profilazione. Cliccando su rifiuta o la X si rifiutano tutti i cookie di profilazione. Cliccando su personalizza è possibile selezionare quali cookie di profilazione attivare.