WordPress上传图片自动重命名(wp如何防止图片名字重复)

少羽.
少羽.
少羽.
3892
文章
92
评论
2018年11月28日22:30:15WordPress上传图片自动重命名(wp如何防止图片名字重复)已关闭评论 10.1K 2016字阅读6分43秒

WordPress上传图片自动重命名

之前用wordpress给一个医院做了个企业展示型网站。网站交付他们后,他们在完善内容的时候,经常会用到中文名称的图片来上传。这么做的话,在下一次网站搬家的时候就会出现破图问题,针对这个问题,我给他们SEO人员以及编辑交代了好几遍。然后他们还是有的时候会忘记给中文名称的图片改成英文的。真是头大。

刚好找到了这个不错的方法,立马转来先收藏了再说。这个功能以后还是会用到的。虽然我博客不用,因为我有不用中文名称图片的好习惯,我都是自己命名的。同时这个方法也很好的避免之前有同名称图片再上传会覆盖的问题。毕竟图片上传后自动重命名。

代码一:按时间重命名

上传文件时会以“年月日时分秒+千位毫秒整数”的格式重命名文件,如“20171023122221765.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上传文件重命名
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);

WordPress上传图片自动重命名

之前用wordpress给一个医院做了个企业展示型网站。网站交付他们后,他们在完善内容的时候,经常会用到中文名称的图片来上传。这么做的话,在下一次网站搬家的时候就会出现破图问题,针对这个问题,我给他们SEO人员以及编辑交代了好几遍。然后他们还是有的时候会忘记给中文名称的图片改成英文的。真是头大。

刚好找到了这个不错的方法,立马转来先收藏了再说。这个功能以后还是会用到的。虽然我博客不用,因为我有不用中文名称图片的好习惯,我都是自己命名的。同时这个方法也很好的避免之前有同名称图片再上传会覆盖的问题。毕竟图片上传后自动重命名。

代码一:按时间重命名

上传文件时会以“年月日时分秒+千位毫秒整数”的格式重命名文件,如“20171023122221765.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上传文件重命名
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模板文件中即可。

推荐“代码一”的方式来自动命名,因为这是最简便的一个方式了,名字长度也在可接受范围。同时上述两段代码都避免了上传含有中文字符名称图片带来的数据迁移造成名称乱码的问题,兼容性非常的好。

少羽.
  • 本文由 发表于 2018年11月28日22:30:15
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
禁用 WordPress 5.5 图片延迟加载功能 WordPress

禁用 WordPress 5.5 图片延迟加载功能

WordPress 5.5除了不断优化修改区块编辑器之外,还增加了几个新功能,其中的图片延迟加载功能,经本人测试,除了在火狐下有效果,在Chromium内核的浏览器中无效,难道是开发人员也和我一样只用...
⎛⎝WordPress⎠⎞添加好看的移动端底部菜单导航 WordPress

⎛⎝WordPress⎠⎞添加好看的移动端底部菜单导航

WordPress添加好看的移动端底部菜单导航,以前也分享过一个导航,不过那个不太好看,这里在分享一个导航在电脑端不显示,手机端显示,其它系统程序也可以用,把代码添加到主题的页脚文件就可以啦,CSS样...
WordPress纯代码实现独立相册功能 WordPress

WordPress纯代码实现独立相册功能

其实,这篇文章很早准备发了,一直拖,拖,拖硬生生拖到了现在,今天整合闲着,就更新一下博客吧! 想到这个文章,我忘记发了,今天就补上 hhh 正文 思路是前段时间写模板琢磨出来的,模板写废了,也不准备写...
广告也精彩

分享海报

WordPress上传图片自动重命名(wp如何防止图片名字重复)-海报