作为一款免费开源建站程序,wordpress受到了很多企业和个人站长的青睐,楚狂人也是wp的忠实拥趸。但是WordPress一上传图片就会自动裁剪好几张不同尺寸的图片生成缩略图,我们都知道服务器空间有限,这样无疑会占用一定的硬盘资源,有没有可以彻底关闭wordpress缩略图功能呢?那必须有!
关闭WordPress缩略图方法一
1.后台—-设置—-媒体—-图像大小都设置成0,记得保存!

2.通过http://你的域名/wp-admin/options.php
进入WordPress的后台——设置(也就是我们常说的WordPress上帝模式)页面。
访问你的博客地址/wp-admin/options.php 进入后找到 medium_large_size_w,设置为0即可。记得保存!

当然,直接在数据库里面修改也是可以的,但是相对来说比较麻烦,我们做wordpress优化还是尽量选择简单的办法好。
关闭WordPress缩略图方法二
在你的WordPress主题文件夹中找到functions.php文件,然后添加以下代码:
add_filter( 'intermediate_image_sizes', '__return_empty_array' );
这将移除WordPress生成的所有中等大小的图片缩略图。
关闭WordPress缩略图方法三
把下面的代码放到主题的“functions.php”文件中。
//禁止缩略图 add_filter( 'add_image_size', create_function( '', 'return 1;' ) );
// 禁用自动生成的图片尺寸
function dz_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', 'dz_disable_image_sizes');
// 禁用缩放尺寸
add_filter('big_image_size_threshold', '__return_false');
// 禁用其他图片尺寸
function dz_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', 'dz_disable_other_image_sizes');
上面代码的第3行是注释掉的,这样会保存一张420×280的图片,对应的就是wp后台设置的自定义尺寸的缩略图。使用时可以根据自己的使用场景结合注释说明更改上面的代码。
这时候再上传图片,你就会发现图片空间里面只有一张原图和一张文件名后缀为“-420×280”的图片,,这一样我们至少又可以节约一大半的存储空间。
方法四:清理已有缩略图
进入wordpress服务器地址,进入目录域名/wp-content/uploads,下图为清理后效果,
只会删除 xxxxx-2560x1280.png一类格式的图片,不会删除其余文件

脚本:
#coding=utf-8
import re
import os
def get_file_path(root_path, file_list, dir_list):
# 获取该目录下所有的文件名称和目录名称
dir_or_files = os.listdir(root_path)
for dir_file in dir_or_files:
# 获取目录或者文件的路径
dir_file_path = os.path.join(root_path, dir_file)
# 判断该路径为文件还是路径
if os.path.isdir(dir_file_path):
dir_list.append(dir_file_path)
# 递归获取所有文件和目录的路径
get_file_path(dir_file_path, file_list, dir_list)
else:
file_list.append(dir_file_path)
pass
return file_list
def delete_file(deletes_files,find_delete,find_mulu):
for delete_file in deletes_files:
delete_file = str(delete_file)
delete_file = str(re.findall(find_delete,delete_file)).replace("['","").replace("']","")
try:
os.remove(delete_file)
with open("已删除文件.txt","a+",encoding="utf-8") as f:
f.write(str(delete_file) + "\n")
except Exception as e:
pass
if __name__ == "__main__":
# 根目录路径
root_path = "./"
# 用来存放所有的文件路径
file_list = []
# 用来存放所有的目录路径
dir_list = []
# 用来存放所有的删除文件
deletes_files = []
# 匹配规则
find_delete = re.compile(r'.+?-\d[0-9]{0,5}\w[x]\d[0-9]+.\w[jpg,png,jpeg]+')
find_mulu = re.compile(r'.{2}\d{2}\\')
deletes_files = get_file_path(root_path, file_list, dir_list)
delete_file(deletes_files,find_delete,find_mulu)
新建文件1.py,然后终端切换到图片上传路径
cd /www/wwwroot/域名/wp-content/uploads python 1.py
稍等片刻,然后刷新文件查看即可发现,多余的网站缩略图已经全部删除,网站图片加载依旧正常(图片文件都存在,不会误删,但是如果你文章里面使用的是裁剪过后的图片,可能会导致404,想好就可以进行操作)
最后,楚狂人友情提示,无论使用上面哪种方法来优化网站的图片存储,都建议在进行更改之前备份你的网站,以防不必要的问题。此外,禁用某些缩略图可能会影响你的网站的外观和性能,因此要慎重考虑。
楚狂人




