web-dev-qa-db-fra.com

Comment changer la compression des téléchargements Wordpress, y compris l'image originale

Nous l'utilisons actuellement pour modifier la compression utilisée sur les fichiers jpgs lors du téléchargement dans la médiathèque WP:

add_filter(‘jpeg_quality’, function($arg){return 75;});

Toutefois, cela ne compresse pas l'image d'origine. Nous avons parfois besoin d'afficher l'image d'origine sur notre site Web et celle-ci doit également être compressée. Comment faisons-nous cela?

Merci d'avance pour votre aide!

1
richard

Pour compresser l'image téléchargée, j'ai écrit un extrait de code simple qui remplace immédiatement un fichier récemment téléchargé par une image dont la qualité peut être spécifiée:

function wt_handle_upload_callback( $data ) {
    $image_quality = 30; // Change this according to your needs
    $file_path = $data['file'];
    $image = false;

    switch ( $data['type'] ) {
        case 'image/jpeg': {
            $image = imagecreatefromjpeg( $file_path );
            imagejpeg( $image, $file_path, $image_quality );
            break;          
        }

        case 'image/png': {
            $image = imagecreatefrompng( $file_path );
            imagepng( $image, $file_path, $image_quality );
            break;          
        }

        case 'image/gif': {         
            // Nothing to do here since imagegif doesn't have an 'image quality' option
            break;
        }
    }

    return $data;
}
add_filter( 'wp_handle_upload', 'wt_handle_upload_callback' );

En ce qui concerne les tailles d’image supplémentaires (il suffit de changer la valeur de retour):

add_filter( 'wp_editor_set_quality', function( $quality ) { return 30; } );
1
webtoure