Converti in automatico le immagini in WebP

Converti in automatico le immagini JPEG, PNG e GIF in WebP quando le carichi nella galleria dei media.
PHP
add_filter( 'wp_handle_upload', 'dmm_convert_webp' );

function dmm_convert_webp( $upload ) {
    if ( isset( $upload['type'] ) && ( $upload['type'] == 'image/jpeg' || $upload['type'] == 'image/png' || $upload['type'] == 'image/gif' ) ) {
        $file_path = $upload['file'];
 
        // Verifica se è disponibile ImageMagick o GD
        if ( extension_loaded( 'imagick' ) || extension_loaded( 'gd' ) ) {
            $image_editor = wp_get_image_editor( $file_path );
            if ( ! is_wp_error( $image_editor ) ) {
                $file_info = pathinfo( $file_path );
                $dirname   = $file_info['dirname'];
                $filename  = $file_info['filename'];
 
                // Crea un nuovo percorso per l'immagine WebP
                $new_file_path = $dirname . '/' . $filename . '.webp';
 
                // Tentativo di salvare l'immagine in formato WebP
                $saved_image = $image_editor->save( $new_file_path, 'image/webp' );
                if ( ! is_wp_error( $saved_image ) && file_exists( $saved_image['path'] ) ) {
                    // Successo: sostituisci l'immagine caricata con l'immagine WebP
                    $upload['file'] = $saved_image['path'];
                    $upload['url']  = str_replace( basename( $upload['url'] ), basename( $saved_image['path'] ), $upload['url'] );
                    $upload['type'] = 'image/webp';
 
                    // Opzionalmente rimuovi l'immagine originale
                    @unlink( $file_path );
                }
            }
        }
    }
 
    return $upload;
}

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.