WordPress添加媒体文件时,默认会保留上传文件的原文件名;但是有时候会出现新文件名与旧文件名相同的情况,这时就需要文件自动重命名了。
时间重命名
上传文件时会以“年月日时分秒+千位毫秒整数”的格式重命名文件,如“20200918121028568.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
模板文件中即可;还有插件、部分主题自带重命名功能,使用它们同样能达到效果。
评论前必须登录!
立即登录 注册