站点图标 度崩网-几度崩溃

wordpress禁用自动裁剪缩略图片[wordpress教程]

wordpress禁用自动裁剪缩略图片[wordpress教程]

WordPress 升级 4.4 之后,推出了 srcset 这个图片多屏自适应功能之后,默认会生成四个版本的缩略图。因为要适应不同大小的屏幕,有时要根据图片比例不同而生成不同的尺寸。但是,如果上传一张图片要生成多个不同尺寸的图片,在有些主题下,是比较浪费空间的。

这些缩略图分别为:

前三种版本大家都很熟悉了,进入 WP后台 —> 设置 —> 媒体,可以看到图片的大小设置:

上面设置的含义:

  1. 缩略图大小(thumbnail),都设置成了0,表示禁用了缩略图裁剪
  2. 中等大小(medium),宽度设置成了 768,高度为0(不限),表示以宽度为准,高度自适应调整缩放比例,另保持跟默认的 medium_large_size_w = 768 一致,共用一张图
  3. 大尺寸(large),都设置成了0,表示禁用了大图裁剪
  4. medium_large,进入WP数据库,搜索wp_options表medium_large_size_w可以看到。

或者进入WordPress上帝模式。

wordpress的上帝模式[wordpress教程]

也可以看到 medium_large_size_w 

由以上列表可以看出,如果我们上传一张足够大的图片,就会产生至少四张缩略图,为什么这里说是至少?

因为适应不同大小的屏幕,有时要根据图片比例不同而生成不同的尺寸。

但是,上传一张图片要生成多个不同尺寸的图片,这是何等的浪费空间!

禁用自动裁剪缩略图

为了禁用自动裁剪多张缩略图片,占用大量磁盘空间,以及迁移维护成本,需要禁用掉自动裁剪缩略图片功能。

一般情况下,仅需第一步和第三步即可。

第一步:

通常我们只需在多媒体设置页面将所有尺寸设置为0,就能禁用缩略图裁剪:

第二步

但是上图这种方法,无法禁用 medium_large 版本,其数据写入了数据库,解决办法可在进入上帝模式后,搜索medium_large_size_w,设为0即可。

第三步

在主题根目录下的functions.php的<?php下添加以下代码并保存

// 禁用自动生成的图片尺寸
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
}
add_action('init', 'shapeSpace_disable_other_image_sizes');

原文地址:https://www.npc.ink/17866.html