WordPress后台默认上传文件上传到服务器上面是不会改动文件名的,如果想要改动的话就必须到服务器或者ftp上面进行更改,这里提供两种方法让我们的WordPress对上传的媒体文件自动重命名
1、WordPress上传图片重命名,日期+随机数字的方式
// WordPress上传图片重命名,日期+随机数字的方式
function rename_upload_img($file) {
$time=date("Y-m-d H:i:s");
$file['name'] = $time."".mt_rand(100,999).".".pathinfo($file['name'] , PATHINFO_EXTENSION);
return $file;
}
add_filter('wp_handle_upload_prefilter', 'rename_upload_img');
代码解释:
1、$time=date("Y-m-d H:i:s")这个代表时间:年月日时分秒,如果不要时分秒,写成这样既可$time=date("Y-m-d")
比如当前时间为2022年03月25日18点56分30秒,$time输出的时间为2022-03-25-185630;
2、mt_rand(100,999)是生成一个介于 100 和 999 之间(包括 100 和 999)的随机整数;
3、pathinfo($file['name'], PATHINFO_EXTENSION);这个函数返回该文件的文件扩展名;
4、add_filter() 是WordPress的内置函数,可以挂载一个函数到指定的过滤器上,是用于过滤过滤器中的内容的,简单的说就是把原先默认的内容给“篡改”掉,当然是按照我们想要实现的意图篡改。
第二、随机MD5 20位字符
// WordPress上传图片重命名,20位随机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);
由于默认的md5值有32位数,用到了substr函数截取前20个字符作为文件名。
评论