如何实现wordpress媒体图片上传自动重命名

admin
admin
admin
343
文章
75
评论
2022年3月28日08:00:00
评论
43

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个字符作为文件名。

admin
匿名

发表评论

匿名网友 填写信息

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