WordPress 上传图片压缩

在主题functions.php函数文件里添加即可

图片只有jpg格式适合压缩,

png不好压缩,但是可以imagewebp代替imagepng,但是ie浏览器不支持webp格式,如果用imagejpeg代替imagepng压缩的话,如果是透明的图片,那么图片会失去透明,而且会失真,所以可选择压缩,

gif也不好压缩,也没必要压缩了,如果使用imagewebp压缩gif的话,我测试发现,上传报错,于是算了,

如果非要压缩png和gif,可以使用一下php的一些拓展进行压缩,我对png和gif无需求,这里就不多说了,

function wt_handle_upload_callback($data)
{
    $image_quality = 60; // 压缩比例 0-100选择
    $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);
             //png不支持压缩,可以使用webp代替,但是ie浏览器不支持webp文件格式
             //imagewebp( $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');

参考:

http://xiexuefeng.cc/archives/62.html

https://wordpress.stackexchange.com/questions/193617/how-to-change-compression-of-wordpress-uploads-including-original-image

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注