WordPress如何限制、禁止生成某些特定尺寸的缩略图!
WordPress如何限制、禁止生成某些特定尺寸的缩略图!
玩WordPress的小伙伴应该很清楚,使用仪表盘媒体上传图像时,WordPress会生成该图像的多个缩略图副本。默认情况下,WordPress生成4种尺寸:
- 缩略图
- 中等尺寸
- 中大尺寸
- 大尺寸
但与此同时,主题和插件开发人员可以设置自己的缩略图尺寸(比如缙哥哥使用的DUX主题,缩略图就是220*150)。虽然它们可能是故意的,但有时它们仍未使用。这样一来,就导致不必要的额外缩略图占用服务器空间并减慢您的网站速度!要知道,生成的缩略图,可能比你手工压制好的原图还要大。
WordPress仪表盘设置
我们在WordPress后台的仪表盘,通过设置
→媒体
,进入媒体设置
页面,如下图所示:
将你不需要生成的缩略图设置为0即可。
WordPress上帝模式
由于WordPress预置这些参数并直接在安装时就写入数据库,单纯通过在后台设置-媒体-图像大小 下将所有数值改为0,WordPress仍会创建一个固定宽度为768的文件。
有没有彻底禁用缩略图的办法了,答案是:有。那就开启WordPress上帝模式(全局选项设置),通过http://你的域名/wp-admin/options.php
访问即可进入了WordPress的全部设置(也就是我们常说的WordPress上帝模式)页面。
在此页面找到medium_large_size_w
选项,将其设置为 0 即可。记得点保存按钮!(缙哥哥建议在该页面使用Ctrl+F
进行搜索medium_
)
缩略图禁用插件
Stop Generating Image Sizes 插件,可以让你禁用掉一些图片尺寸,从而减少缩略图文件。 该插件兼容任何主题和其他插件,牛逼的是,它还兼容多站点模式。
你可以在WordPress后台插件安装界面搜索 Stop Generating Image Sizes 进行在线安装,或者访问官方地址下载: https://wordpress.org/plugins/image-sizes/
插件其实很简单,想必大家看图就知道了,WP校长倡萌简单汉化了一下,附带简体中文包
image-sizes-zh_CN-languages.zip: https://zwjdujin.ctfile.com/fs/5210373-389853607
解压后,将里面的文件上传到 /wp-content/languages/plugins
目录即可。
第二种方法:
WordPress禁止系统自动生成各种尺寸缩略图,后台设置很简单,但后台只是禁止WordPress并没禁止主题自动生成缩略。这里需要使用插件和代码进行禁止主题生成缩略图。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/53638.html
一、使用插件禁止缩略图:Stop Generating Unnecessary Thumbnails
1、安装这个插件,并简单设置你需要禁止的缩略图,保存就可以了。(想禁止所有,只保留原图,除了第一个,其他全部打开)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/53638.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/53638.html
2、保存好后,上传一个图片到媒体库,检查服务器中是否生成多缩略图。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/53638.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/53638.html
二、如果使用了插件,还是有缩略图生成,哪就需要使用代码,插件无法阻止。
1、查看服务器中缩略图片的信息,如下是512×288。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/53638.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/53638.html
2、还是使用Stop Generating Unnecessary Thumbnails插件检查,判断512×288缩略图属于“kratos-thumbnail”生成,插件无法阻止这个缩略图:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/53638.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/53638.html
3、使用以下代码,进行替换,在主题的functions.php文件添加代码。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/53638.html
其中,remove_image_size(‘kratos-thumbnail’); ,意思就是移除名为’kratos-thumbnail‘的模块。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/53638.html
- // 禁用自动生成的图片尺寸
- 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
- remove_image_size('kratos-thumbnail'); // disable any other added image sizes
- }
- add_action('init', 'shapeSpace_disable_other_image_sizes');
4、在次上传图片,测试看还会不会生成缩略图。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/53638.html
三、WordPress后台媒体禁止缩略图自动生成设置。
设置为0,禁止WordPress生成系统缩略图了。此设置不包含主题缩略图。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/53638.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/53638.html
WordPress刚建站上线的时候,我无意间发现每当我上传了一张图片,后台就不知道为什么莫名生成了四五张尺寸不同的缩略图,这个真的要命,太占空间了。
后来发现原来是有些主题会自己生成缩略图以实现在不同的地方使用不同大小的图片,比如幻灯片、缩略图、中等尺寸、大中型尺寸、大尺寸的图片。
基本处理这个问题,只要在仪表盘->设置->媒体里把缩略图禁止即可,见图示操作。
设置完,你就会发现果然再上传图片的时候只有一张了。然而事情并没有想象得那么简单,我在上传其中一张图片的时候突然发现又多了一张另外尺寸的图片,而且比我原始图片的KB还大。
后来研究了下,原来WordPress会对那些高像素的图片,一般是像素宽超过700PX的图片自动生成medium large尺寸的图片,大概700*300多PX,我每次都不得不把图片的像素宽度控制在700PX,有时候如果700PX模糊了,就干脆不修改了,多张图就多张吧。好把,不只是多一张,而是上传一百张大尺寸,就有200张更大的图片等着你。
这个对强迫症来说真的是难受,查阅了好多资料,翻遍了全网都没有解决方法,忍了几个月,终于在今天知道怎么处理了,感谢这些代码高手,好羡慕会自己创造代码的人。
小白和高手的距离有时候只是几行代码,把以下代码直接放入functions.php里就可以生效了,注意此代码对之前已经上传完的图无效,需要你空闲的时候自己去删了。
add_filter( 'intermediate_image_sizes', function( $sizes )
{
return array_filter( $sizes, function( $val )
{
return 'medium_large' !== $val; // Filter out 'medium_large'
} );
} );
再上传一张图片试试,发现WordPress不会再生成任何其他缩略图了。感谢代码高手们!!!
共有 0 条评论