thumbnail storage optimize

WordPress网站上传1张图片生成15张缩略图?怎么优化

  • tomhello
  • 2023年11月27日

我在闲鱼上有一个客户遇到了一个关于缩略图占用过多服务器磁盘空间的问题:上传1张图片,生成15张缩略图

他需要上传数以万计的产品,其中仅产品图片就占用了20GB的空间。在通过CSV文件上传至Wordpress电子商务网站时,系统自动生成了大量缩略图,这不仅占用了大量服务器空间,还导致了对更高配置服务器的需求。因此,该用户寻求方法减少缩略图的生成,以节省磁盘空间。

对于使用Wordpress的用户来说,图片上传过程中自动生成的大量缩略图可能会占用过多服务器空间。所以在本文,我主要探讨一下Wordpress为何生成多个缩略图以及如何有效减少这些缩略图,以节约磁盘空间。

第一部分:Wordpress为何生成多个缩略图?

WordPress网站在上传图片时生成多个缩略图,主要是为了提高用户体验。这些缩略图在不同的场景下展示不同大小和比例的图片,例如文章列表的小图、产品页面的中图和特色图片等。这样做可以确保网站在不同设备和页面布局中都能快速加载并显示适合的图片。然而,这也意味着对于每张上传的原图,Wordpress都会生成多个大小不一的缩略图,从而导致服务器空间的快速消耗。

我们可以从以下的图中了解到,不同的图会用到模板不同的页面以便得到更好的展示。比如针对 Porfolio, Post,和Woocommerce 产品都生成了对应的图。但这种方法比较粗暴,并没有针对特定的图片只生成对应的图片缩略图(比如产品,就只生成woocommerce产品要求的缩略图尺寸就行)。

模板的缩略图达到了21张

某些模板的缩略图达到了21张

第二部分:如何减少Wordpress生成的缩略图数量?

要减少Wordpress生成的缩略图数量,可以采取以下几种方法:

1. 检查你的主题模板会生成的哪些缩略图。

你可以通过设置>媒体查看到Wordpress系统默认会生成哪些图。但是这并不是全部(通常你只能看到大中小三种缩略图)。

如果你要了解你的Wordpress网站到底生成了哪些缩略图,可以用一些第三方免费插件。

这里我用了一个叫重新生成缩略图(Regenerate Thumbnails的插件来看系统大概会自动生成哪些类型的缩略图,从而选择性的来想办法移除不需要的缩略图。

Regenerate Thumbnails

Regenerate Thumbnails

你可以直接从Wordpress插件中搜索并安装好这个插件。激活后,你就可以进入左边导航工具>重新生成缩略图,来查看目前你的Wordpress会生成哪些缩略图。

2. 修改functions.php文件来阻止某些缩略图的生成。

通过编辑Wordpress主题的functions.php文件,您可以添加代码来阻止生成特定尺寸的缩略图。这需要你有一定的PHP代码知识,因为您将直接修改网站代码,有可能造成网站崩溃。要加入代码的话,你需要按以下的步骤来操作。

首先在Wordpress后台找到外观>主要文章编辑器>functions.php

Wordpress 编辑 functions.php

WordPress 编辑 functions.php

然后你需要把以下代码加入到这个文件中,然后保存。

function remove_unused_image_sizes() {
// 移除默认的缩略图尺寸
remove_image_size('thumbnail');
remove_image_size('medium');
remove_image_size('medium_large');
remove_image_size('large');
// 移除 WooCommerce 设置的尺寸,根据需要添加或删除
remove_image_size('woocommerce_thumbnail');
remove_image_size('woocommerce_single');
remove_image_size('woocommerce_gallery_thumbnail');
// 移除其他自定义尺寸,根据需要添加或删除
remove_image_size('50x50');
remove_image_size('1920x750');
remove_image_size('1630x860');
remove_image_size('1280x1000');
remove_image_size('1280x500');
remove_image_size('1200x675');
remove_image_size('1024x1024');
remove_image_size('960x720');
remove_image_size('768x1200');
remove_image_size('960x720');
remove_image_size('960x720');
remove_image_size('80x80');
remove_image_size('150x150');
remove_image_size('300x300');
remove_image_size('768x768');
remove_image_size('1536x1536');
remove_image_size('1024x1024');
remove_image_size('2048x2048');
remove_image_size('blog-navi');
}
add_action('init', 'remove_unused_image_sizes');

3. 调整Wordpress图片设置

在Wordpress的设置中,将默认生成的缩略图尺寸设置为0。这样,Wordpress在上传图片时不会生成这些默认尺寸的缩略图。只需要进入到后台,设置>媒体,就可以找到相应的设置。

设置缩略图大小

设置缩略图大小

通过以上方法,您可以显著减少网站生成的缩略图数量,从而节省至少一半的磁盘空间。