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');
参考: