彻底关闭 WordPress 对图片的压缩与裁剪:图像原始质量还给设计者

WordPress 是一款功能强大的内容管理系统,但它在图片处理方面默认会执行自动压缩和裁剪。这对大多数普通用户有帮助,但对设计师、电商运营者、摄影博客主来说,这些自动操作往往破坏了图片的原始效果。

如果你想保留上传图片的原始质量和尺寸,不想被 WordPress 擅自处理,那么本文就是为你准备的。

一、WordPress 默认图片压缩机制说明

WordPress 4.5 起,系统会对所有上传的 JPEG 图片自动执行压缩,默认压缩质量为 82%。此外,在上传图片时,WordPress 还会自动生成多个不同尺寸的图片(如缩略图、中等、大图等),以供不同设备调用。

虽然这项机制优化了页面加载速度,但可能会导致图片模糊、颜色不准确或细节缺失。

二、禁止 JPEG 图片压缩

将以下代码添加到主题的 functions.php 文件中,能关闭 WordPress 对 JPEG 图像的压缩处理:

add_filter(‘jpeg_quality’, function($arg){ return 100; });

这段代码将 JPEG 的压缩比率设为 100%,也就是不压缩。

针对 WordPress 5.8 及以后版本,还需加上这段代码一起使用:

add_filter(‘wp_editor_set_quality’, function($quality) {
return 100;
});

这样可以覆盖编辑器在图片裁剪、旋转、缩放时的压缩处理。

三、关闭图片裁剪及自动生成多个尺寸

默认情况下,每次上传图片,WordPress 会自动生成多种尺寸(例如 150×150、300×300、768x…等)。为避免系统在后台批量创建无用的图片,可禁用这些设置。

方法一:禁用默认尺寸

在 functions.php 文件中添加以下代码:

function disable_default_image_sizes( $sizes) {
unset( $sizes[‘thumbnail’]);
unset( $sizes[‘medium’]);
unset( $sizes[‘large’]);
unset( $sizes[‘medium_large’]);
unset( $sizes[‘1536×1536’]);
unset( $sizes[‘2048×2048’]);
return $sizes;
}
add_filter(‘intermediate_image_sizes_advanced’, ‘disable_default_image_sizes’);

方法二:移除主题或插件自定义尺寸

部分主题或插件可能会注册额外图像尺寸。使用下列代码可批量移除:

function remove_custom_image_sizes() {
foreach ( get_intermediate_image_sizes() as $size ) {
remove_image_size($size);
}
}
add_action(‘init’, ‘remove_custom_image_sizes’, 100);

四、设置中禁用图像尺寸

进入后台 > 设置 > 媒体,将“缩略图尺寸”、“中等尺寸”、“大尺寸”全部设置为 0。

这仅影响 WordPress 核心默认生成的图像尺寸,对主题或插件无效,因此建议与代码搭配使用。

五、关闭缩略图正方形裁剪

WordPress 会默认将缩略图裁剪为正方形。若想保留原始宽高比例,可添加以下代码:

update_option(‘thumbnail_crop’, 0);

也可以在后台媒体设置中取消“裁剪缩略图使其正方形”选项。

六、可选插件推荐

不熟悉代码的用户可借助以下插件实现相同目的:

Disable Image Sizes:一键禁用 WordPress 和主题注册的图像尺寸

Stop Generating Unnecessary Thumbnails:阻止 WordPress 在上传时生成多余图片

Imsanity:限制上传图片的最大尺寸,防止占用大量空间

七、上传前图像优化建议

虽然关闭压缩能保留图片质量,但仍建议使用专业工具进行预处理:

TinyPNG(在线工具)ImageOptim(Mac)RIOT(Windows)

这有助于降低文件体积,加快网页加载速度。

总结

WordPress 的图片处理功能虽有其积极面,但对追求图像完整性的站点来说是种干扰。通过以上设置,可以让上传的每张图片保持原始状态,不被篡改、压缩或裁剪。

几段代码和简单设置就能带来更专业的图片管理方案,为你的站点内容保驾护航。

Leave a Reply

您的电子邮箱地址不会被公开。 必填项已用 * 标注