WordPress 拥有非常强大的图片裁切功能,最基础的设置就是可以通过 WordPress 后台-设置-媒体中设置图片大小,有缩略图大小、中等大小、大尺寸等三个尺寸可以自定义设置。但是 WordPress 也会因为图片过大裁切一个“-scaled”的图片文件,然而从 WordPress 5.3 版本开始还会自动裁切一个 768、1536px 和 2048px 大小的图片,用于适配 img srcset sizes 属性。所以最多的时候 WordPress 会自动裁切 7 个图片尺寸。如果主题还配置了自定义图片裁切,可能还会更多。
当然如果我们通过 WordPress 后台-设置-媒体中设置图片大小都为 0,那么 WordPress 5.3 版本及以上就会只裁切 1536、2048、scaled 这三个默认尺寸,并且 768、1536、2048 这三个尺寸正常情况几乎不会被用到。那么该如何来移除 WordPress 自动裁切功能呢?
add_filter('intermediate_image_sizes_advanced', '__return_false' ); //移除图片裁切
add_filter('big_image_size_threshold', '__return_false' ); //移除 scaled 裁切
将以上代码放置在当前主题 functions.php 文件中即可,其中第一行代码是移除了图片的所有自定义尺寸裁切,不论是主题定义的自定义裁切尺寸,还是 WordPress 默认的 768、1536、2048,还是 WordPress 后台设置的图片大小的尺寸都将失效。第二行代码就是只移除 scaled 尺寸的图片的裁切。所以可以根据自己需求使用,同时还提供以下的一段代码给大家来自定义移除图片的尺寸大小。
//自定义移除图片尺寸
add_filter('intermediate_image_sizes_advanced', 'filter_image_sizes');
function filter_image_sizes( $sizes) {
unset( $sizes['1536x1536']);
unset( $sizes['2048x2048']);
return $sizes;
}
其实我的网站都不会用到 WordPress 自动裁切尺寸的功能,因为这些自动裁切的大小虽然可能会被用到,但是无法保证以后网站改版或者提升图片质量的时候来升级图片尺寸,所以我们采用的都是服务器自动裁切图片的方式,我们网站哪里需要什么尺寸,就动态的调用参数来实现实时裁切,避免了服务器一张图片存储不同尺寸的冗余,这样服务器真正的图片就只有一张上传的原图就可以了。
评论列表(1条)
这个方法不错谢谢分享。