wordpress禁止生成不必要的缩略图,最有效的方法教程
使用wordpress过程中都遇到过,上传一张图片之后,wp会自动给你生成好多张不同尺寸的图片,图片大一点的话,至少会生成6张以上的图片,但是很多时候这些图片我们都用不上,然而我们实际能用上的也就那么一两张,白白浪费了我们的存储空间。

虽然WP后台也有缩略图的设置入口,但是设置好之后你会发现,系统还是会生成一张768尺寸的缩略图。
这个时候动手能力强一点的同学就会去网上找教程了,估计大部分童鞋使用的是一种通过修改WP“上帝模式”参数来实现禁止生成768缩略图的方法,然而设置完之后发现,并没有什么卵用。
根据我的使用场景,今天在这里记录一下我的解决办法,当然代码也是网上找来的,根据我的使用场景做了简单的修改。
先说说我的使用场景:我想要的效果是,上传图片之后保留1张我指定大小的缩略图和原图,算下来我就只需要2张图。
假设我这里需要保留一张420x280的缩略图,其他缩略图一概不要,那么我在wp后台应该如下图设置:

这里设置好之后完成了一半,因为这个时候上传图片的话你回发现还会有一张768的图片,那么接下来就是重点了,上代码:
// 禁用自动生成的图片尺寸
function dz_disable_image_sizes($sizes) {
//unset($sizes['thumbnail']); // disable thumbnail size
unset($sizes['medium']); // disable medium size
unset($sizes['large']); // disable large size
unset($sizes['medium_large']); // disable medium-large size
unset($sizes['1536x1536']); // disable 2x medium-large size
unset($sizes['2048x2048']); // disable 2x large size
return $sizes;
}
add_action('intermediate_image_sizes_advanced', 'dz_disable_image_sizes');
// 禁用缩放尺寸
add_filter('big_image_size_threshold', '__return_false');
// 禁用其他图片尺寸
function dz_disable_other_image_sizes() {
remove_image_size('post-thumbnail'); // disable images added via set_post_thumbnail_size()
remove_image_size('another-size'); // disable any other added image sizes
}
add_action('init', 'dz_disable_other_image_sizes');
细心的同学可能发现了,上面代码的第3行是注释掉的,为什么要注释掉呢?因为我前面说了要保留一张自定义尺寸的缩略图,也就是420x280的那张,所以第3行所对应的就是wp后台设置的自定义尺寸的缩略图。各位童鞋也可以根据自己的使用场景结合注释说明更改上面的代码。
上面的代码记得是放到主题目录下的“functions.php”文件尾部!
其实就简简单单的2步,就达到了我想要的效果,这时候再上传图片,你就会发现图片空间里面只有一张原图和一张文件名后缀为“-420x280”的图片,再没有其他多余的文件了,这一通操作下来我们至少又可以节约一大半的存储空间,特别是使用云存储的同学,这省下来的不单单是空间,那更是白花花的银子。

写了这么长,主要是为了方便刚入门的童鞋好理解,老鸟勿怪,打完收工.