作为一款免费开源建站程序,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行是注释掉的,这样会保存一张420x280的图片,对应的就是wp后台设置的自定义尺寸的缩略图。使用时可以根据自己的使用场景结合注释说明更改上面的代码。
这时候再上传图片,你就会发现图片空间里面只有一张原图和一张文件名后缀为“-420x280”的图片,,这一样我们至少又可以节约一大半的存储空间。
方法四:清理已有缩略图
进入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,想好就可以进行操作)
最后,楚狂人友情提示,无论使用上面哪种方法来优化网站的图片存储,都建议在进行更改之前备份你的网站,以防不必要的问题。此外,禁用某些缩略图可能会影响你的网站的外观和性能,因此要慎重考虑。