WordPress上传文件,图片时自动实现以日期格式重命名

来自:互联网
时间:2018-09-24
阅读:
免费资源网 - https://freexyz.cn/

正常的情况下,我们在WordPress后台上传文件,或者是上传图片的时候,默认的就是您上传时的命名,一般情况下,我们都不会去更改这个命名,但或许有的朋友,会有一些其它的要求,所以就有这个功能出现了,我们在上传文件,或者是图片时自动实现以日期格式重命名.

当然,还有的博主由于文件量大而不愿意逐个重命名文件,有的会把图片命名为中文的,由于WordPress的机制的原因,如果直接上传的话,可能会导致中文文件名的文件出现乱码或不能正常的显示图片或者各种的问题。

这个规则,我们现在的代码,是以日期格式来操作的,如果您有其它的要求,可以自行修改.

当我们的图片上传以后,文件能在我们上传的时候自动变成英文或数字。在你的模板 functions.php中加入以下代码并保存,就可以实现中文文件名称在上传过程中的自动重命名了。

按日期格式

//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');

当上传文件就会以“年月日时分秒+千位毫秒整数”的格式重命名文件了,如“20170326062723.jpg”

2017年4月1日 01:47:32更新

用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);
免费资源网 - https://freexyz.cn/
返回顶部
顶部