目前WordPress ,会对上传的图片尺寸进行额外检测,再自动生成 1536 宽度的 2x 中大尺寸(2x Medium Large),2048 宽度的 2x 大尺寸(2x Large),2560 宽度的缩放(Scaled)这三种新规格的图片,加上默认的几种缩略图规格,也就是极端情况下, 上传一张图片,会额外生成 7 张图片。
如果上传之前未对照片进行压缩过,那上传后产生的缩略图还好。
如果上传之前已经对照片进行压缩过,那上传后产生的缩略图就会出现小分辨率比大分辨率更占空间的尴尬局面。
这些在后台媒体库中也完全看不到。平白无故的浪费大家的空间。在服务器后台中,可以看出有的图片额外多了一张,而有的图片多出了六张。
方法
首先,我们进入WP后台,点击 设置--媒体。所有缩略图都设置为0。
其次,设置完上面的还没有彻底弄完,WordPress还会自动裁剪一个固定宽度为768的图片文件。打开WordPress上帝模式设置,访问https://你的域名/wordpress/wp-admin/options.php,在浏览器按下 Ctrl+F 搜索 medium_large_size_w,把768改成0 。
最后把下边的代码加入主题的 function.php 。
// 禁用自动生成的图片尺寸
function shapeSpace_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', 'shapeSpace_disable_image_sizes');
// 禁用缩放尺寸
add_filter('big_image_size_threshold', '__return_false');
// 禁用其他图片尺寸
function shapeSpace_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', 'shapeSpace_disable_other_image_sizes');
保存即可,这样上传的图片就不会再生成任何额外版本了,不管什么地方插入图片,调用的都是原图。
注意事项
- 更新主题需要备份
- 修改后调用的都是原图,可能会出现图片显示问题,需要注意图片的尺寸大小。