禁止生成WordPress默认的thumbnail、medium、medium_large、large等尺寸图片的方法

💡 原文中文,约2400字,阅读约需6分钟。
📝

内容提要

WordPress上传图片时会自动生成thumbnail、medium、medium_large、large及1536×1536、2048×2048等多种尺寸文件,大量占用磁盘空间。可在子主题functions.php中通过intermediate_image_sizes_advanced过滤器排除这些尺寸,仅保留原图和特色图像。该设置仅对之后上传的图片生效,已生成的文件需手动删除,且主题或插件仍可能单独生成图片。

🔎

延伸解读

代码只对后续上传生效,旧图需手动清理

文章明确指出,通过 intermediate_image_sizes_advanced 过滤器排除尺寸,仅影响之后上传的图片。已经生成的缩略图文件不会自动删除,需要手动清理。因此,若想真正释放磁盘空间,应先备份并确认旧图不再被引用,再删除 uploads 目录下多余的尺寸文件,否则空间占用不会立即改善。

主题与插件可能绕过过滤器继续生成图片

该方案主要控制 WordPress 常规上传流程中的中间尺寸,但文章提醒,主题或插件仍可能单独注册尺寸并生成图片。作者自己的站点在禁用默认尺寸后,仍会生成主题自带的 4:3 缩略图。因此,实施后应检查主题和插件设置,确认没有其他尺寸在继续产生文件。

特色图像功能不受影响,但输出尺寸需留意

文章强调,排除默认尺寸不会关闭特色图像功能,后台仍可正常设置特色图像。不过,如果主题使用 the_post_thumbnail() 输出特色图像,建议检查其调用的尺寸;若希望显示原图,可使用 the_post_thumbnail( 'full' )。这说明禁用缩略图后,前端展示逻辑可能需要相应调整。

验证生效需上传新图并检查目录

要确认设置是否生效,文章建议上传一张新测试图片,然后打开 wp-content/uploads/ 对应年月目录检查:应保留原始上传文件,不应再出现被排除的默认尺寸文件,同时后台仍能正常设置特色图像。这一验证步骤能帮助区分是代码未生效,还是主题插件仍在生成图片。

❓

Q&A

WordPress上传图片时自动生成哪些默认尺寸的图片文件?

WordPress默认会生成thumbnail(缩略图,通常150×150)、medium(中等尺寸,最大300×300)、medium_large(中大尺寸,宽768px)、large(大尺寸,最大1024×1024),以及从WordPress 5.3起增加的1536×1536和2048×2048尺寸。

如何禁止WordPress生成thumbnail、medium等默认尺寸的图片?

在子主题的functions.php中添加代码,使用intermediate_image_sizes_advanced过滤器,通过unset($sizes['thumbnail'])等方式排除不需要的尺寸。例如:add_filter('intermediate_image_sizes_advanced', function($sizes){ unset($sizes['thumbnail']); unset($sizes['medium']); unset($sizes['medium_large']); unset($sizes['large']); return $sizes; }, 999);

禁止生成默认图片尺寸后,对已经上传的图片有影响吗?

该设置只影响之后上传的图片,已经生成的缩略图文件不会自动删除,需要手动删除已生成的冗余文件。

禁止生成默认尺寸后,特色图像功能还能正常使用吗?

可以正常使用。上述代码不会关闭特色图像功能,后台仍可设置特色图像。如果主题使用the_post_thumbnail()输出特色图像,建议检查调用的尺寸,希望显示原图时可以使用the_post_thumbnail('full')。

除了默认尺寸,还有哪些情况会导致生成额外图片?

主题或插件可能单独注册并生成其他尺寸的图片文件,上述代码主要控制WordPress常规上传过程中生成的中间尺寸,不保证拦截所有第三方插件的独立处理逻辑。

如何确认禁止生成默认尺寸的设置已经生效?

上传一张新的测试图片,然后打开服务器上wp-content/uploads/对应年月目录,应只保留原始上传文件,不再出现由默认尺寸生成的文件,同时后台文章编辑器仍能正常设置特色图像。

🏷️

标签

➡️

继续阅读