如何更改WordPress上传内容(包括原始图像)的压缩

时间:2015-07-06 作者:richard

我们目前正在使用此选项更改上载到WP媒体库时jpgs上使用的压缩:

add_filter(‘jpeg_quality’, function($arg){return 75;});
但是,这不会压缩原始图像。我们有时需要在网站上显示原始图像,这也需要压缩。我们如何做到这一点?

提前感谢您的帮助!

1 个回复
SO网友:webtoure

为了压缩上传的图像,我编写了一个简单的代码片段,可以立即用一个可以指定质量的图像覆盖新上传的文件:

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\' );
关于其他图像大小(只需更改返回值):

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

结束

相关推荐