WordPress关闭图片自动裁剪功能

我们在使用WordPress程序的都知道,WordPress图片管理功能确实很丰富,支持各种比例的图片裁剪,以适应在不同终端设备快速的加载图片,但是上传的图片会增加很多无用被裁剪后的图片,导致一个图片被默认裁剪5-6个不同比例的图片,大大增加存储空间,不方便管理。

当您将图像上传到 WordPress 网站时,服务器会自动将其转换为不同的图像尺寸。默认情况下,WordPress 配置了三个自定义图像尺寸。这意味着上传图像后,WordPress 会自动创建不同大小的副本。但是,这并不总是必要的,并且会占用服务器中的空间。因此,在本指南中,我们将向您展示两种从网站中删除 WordPress 默认图像尺寸的方法

为什么要删除 WordPress 中的默认图像尺寸?

默认情况下,当您将图像上传到 WordPress 时,服务器会生成 3 种不同尺寸的副本:

  • 缩略图 – 150 x 150 像素
  • 中 – 300 x 300 像素
  • 大 – 1024 x 1024 像素

尽管这很有用,但它也会占用服务器的空间。因此,如果您不需要这么多的图像尺寸,好在您的网站上禁用它们。例如,如果您不打算在网站上使用中等尺寸的图像,则可以将其删除并停止生成该尺寸的图像副本。

如何禁用WordPress图片自动裁剪?

1) 通过后台设置

第一步:

在网站后台——设置——媒体,将默认的图片大小裁剪比例都去掉,保存后如下截图(将所有的高度、宽度全部改为0)。把“总是裁剪缩略图到这个尺寸(一般情况下,缩略图应保持原始比例)”前面的对勾去掉。

但是,保存后,你发现上传的图片仍然会被裁剪,如下图:

第二步

所以,上面设置完保存后还没结束,WordPress还会自动裁剪一个固定宽度为768的图片文件,我们需要打开WordPress隐藏的一个设置项:/wp-admin/options.php。使用Ctrl+F快捷键查找“768”,将该值删除即可。

通过以上两个步骤,就可以实现WordPress彻底关闭图片自动裁剪缩略图,只留一张主图。

2) 以编程方式(编码)

如果您有编码技能,我们为您提供了另一种解决方案。在本节中,我们将向您展示一个片段,该片段允许您从 WordPress 中删除默认图像大小。

由于您需要编辑主题的functions.php文件,因此我们建议您使用子主题。如果您没有,您可以按照此分步指南创建一个主题,或者使用插件只需单击几下即可生成子主题。此外,出于安全原因,我们建议您生成网站的完整备份。

要编辑functions.php,您可以使用WordPress仪表板或插件中的主题编辑器。对于这个演示,我们将使用一个名为Code Snippets的免费插件。该工具用作特定于站点的插件,允许您将自定义 PHP、HTML、JavaScript 和 CSS 代码添加到站点,而无需编辑主题文件。

复制下面的代码并将其粘贴到编辑器中。

add_filter( 'intermediate_image_sizes_advanced', 'prefix_remove_default_images' );
// This will remove the default image sizes and the medium_large size. 
function prefix_remove_default_images( $sizes ) {
 unset( $sizes['small']); // 150px
 unset( $sizes['medium']); // 300px
 unset( $sizes['large']); // 1024px
 unset( $sizes['medium_large']); // 768px
 return $sizes;
}

您已成功从服务器中删除代码中提到的所有图像尺寸。如果您仔细查看该代码片段,就会发现您已禁用 4 个图像尺寸。

  • 小的
  • 中等的
  • 大的
  • 中_大

前三个是 WordPress 中的默认图像大小。但是,某些主题和插件也会注册自定义图像,因此在本例中我们还禁用了medium_large图像。

删除特定的默认图像尺寸

现在,假设您不想删除所有默认图像尺寸,而只想禁用中尺寸和大尺寸。代码会是这样的:

add_filter( 'intermediate_image_sizes_advanced', 'prefix_remove_default_images' );
// This will remove the default image sizes medium and large. 
function prefix_remove_default_images( $sizes ) {
 unset( $sizes['medium']); // 300px
 unset( $sizes['large']); // 1024px
 return $sizes;
}
滚动至顶部