用WordPress主题的朋友们或许都发现了,再上传文件时如果文件名重复的话,会覆盖原文件。虽说后期也可以修改,但如果文件较多,一个个的修改起来便特别麻烦,所以这就需要用到文件自动重命名了。
在这不需要复杂的插件操作,只需要几行简单的代码便可轻松搞定,方法有两种:
方法一、按时间重命名
上传文件时会以“年月日时分秒+千位毫秒整数”的格式重命名文件,如“20210520122221879.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位。
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模板文件中即可!
注意,加其中一种代码便可,至于加哪种可根据自己的喜好进行添加。