- 前言:
- 1、这两天社长在发布文章的时候突然发现好多图片展开放大的时候引用另外一张图片,而且我之前有习惯经常会用到中文名称的图片来上传。这么做的话,在下一次网站搬家的时候就会出现破图问题
- 2、刚好找到了一个不错的方法,立马转来先分享给大家了再说。这个功能以后还是会用到的。虽然我博客不用,因为我有不用中文名称图片的好习惯,我都是自己命名的。
- 3、同时这个方法也很好的避免之前有同名称图片再上传会覆盖的问题。毕竟图片上传后自动重命名。
方法一【按时间重命名】
上传文件时会以年月日时分秒+千位毫秒整数
的格式重命名文件,如202109041412432.jpg
。如图
//wordpress 上传文件图片按时间重命名重命名 function git_upload_filter($file) { $time = date("YmdHis"); $file['name'] = $time . "" . mt_rand(1, 100) . "." . pathinfo($file['name'], PATHINFO_EXTENSION); return $file; } add_filter('wp_handle_upload_prefilter', 'git_upload_filter');
方法二【用 MD5 加密生成数字并重命名】
名称规则是由系统自动生成的一个 32 位的 MD5 加密文件名
,由于默认生成的 32 位文件名有点长,所以使用substr(md5($name),0,20)
截断将其设置为 20 位。
//wordpress 上传文件图片 MD5 加密重命名 function rename_filename($filename) { $info = pathinfo($filename); $ext = emptyempty($info['extension']) ? '' : '.' . $info['extension']; $name = basename($filename, $ext); return substr(md5($name), 0, 20) . $ext; } add_filter('sanitize_file_name', 'rename_filename', 10);
使用操作教程
在主题目录下functions.php
文件里面最下面,然后下面的代码复制进去即可。
推荐“代码一”的方式来自动命名,因为这是最简便的一个方式了,名字长度也在可接受范围。同时上述两段代码都避免了上传含有中文字符名称图片带来的数据迁移造成名称乱码的问题,兼容性非常的好。
公告 : 本站【www.dosxs.com】提供的源码、模板、插件等等其他资源,不包含技术服务请大家谅解。赞助本站VIP会员免费提供技术服务以及远程协助 。
说明: 教程版权归原作者所有,本站只是负责搜集整理,不承担任何技术及版权问题。在本站下载任何教程仅提供学习参考,不得用于商业用途,请在下载后在24小时内删除
须知: 本网站资源来源于网络收集,如有侵权,请联系站长进行删除处理。分享目的仅供大家学习和交流,请不要用于商业用途,否则后果自负。
声明: 本站提供的教程均为网上搜集,如果该程序涉及或侵害到您的版权可联系我们进行处理。
说明: 教程版权归原作者所有,本站只是负责搜集整理,不承担任何技术及版权问题。在本站下载任何教程仅提供学习参考,不得用于商业用途,请在下载后在24小时内删除
须知: 本网站资源来源于网络收集,如有侵权,请联系站长进行删除处理。分享目的仅供大家学习和交流,请不要用于商业用途,否则后果自负。
声明: 本站提供的教程均为网上搜集,如果该程序涉及或侵害到您的版权可联系我们进行处理。