【WordPress 教程】让主题支持WordPress上传文件自动重命名

2019年4月15日11:13:39 评论 4,212
摘要

wordpress上传文件,如果文件名重复的话,会覆盖原文件,而中文名称的文件则会出现乱码,对于同一天上传文件较多的站点,手动修改显然很麻烦。

  • 推荐两段在上传媒体文件时自动重命名的代码
  • 下面介绍的方法是通过在当前主题的functions.php文件里添加相关函数代码实现。缺点是每次更换主题的时候都要重新添加一次,适合不常更换主题模板的站点;优点当然是不受wordpress程序更新的影响!

【代码一】

  • 上传文件时会以“年月日时分秒+千位毫秒整数”的格式重命名文件,如“20161023122221765.jpg”
此处为隐藏的内容!
发表评论并刷新,方可查看

【代码二】

  • 以上代码可以实现文件名称在上传过程中自动重命名,新的名称规则是由系统自动生成的一个32位的MD5加密文件名,由于默认生成的32位文件名有点长,所以使用substr(md5($name), 0, 20) 截断将其设置为20位。
  • 生成的文件名称如:2ba0b99abec8c19b66d7.jpg
wordpress用MD5加密生成数字上传文件重命名
  1. //wordpress用MD5加密生成数字上传文件重命名
  2. function rename_filename($filename) {
  3.     $info = pathinfo($filename);
  4.     $ext = empty($info['extension']) ? '' : '.' . $info['extension'];
  5.     $name = basename($filename$ext);
  6.     return substr(md5($name), 0, 20) . $ext;
  7. }
  8. add_filter('sanitize_file_name', 'rename_filename', 10);

【使用方法】

  • 将代码添加到当前主题functions.php模板文件中即可。
  • 以上代码,很方便,节省时间。2者看个人喜欢选择其一。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: