通过添加代码实现wordpress上传文件时 文件自动命名

/ 2评 / 15

对于wordpress上传文件命名的方面相信很多人都会吐槽。经常都需要添加图片、多媒体什么的。如果文件名重复,就会自动覆盖原来文件,然而wordpress对于中文名称的文件则会出现乱码,相对于同一天上传文件较多的站点,自己手动修改显然非常麻烦。还在为wordpress文件命名烦躁吗?,不过现在好了,近期逛博客时发现了两种简单高效的命名方法,下面在此记录一下:

一、用MD5加密生成数字并重命名

由系统自动生成的一个32位的MD5加密文件名,由于默认生成的32位文件名有点长,所以使用substr(md5($name), 0, 20) 截断将其设置为20位。

function rename_filename($filename) {
$info = pathinfo($filename);
$ext = empty($info['extension']) ? '' : '.' . $info['extension'];
$name = basename($filename, $ext);
return substr(md5($name), 0, 20) . $ext;
}
add_filter('sanitize_file_name', 'rename_filename', 10);

以上源代码来源自:博客吧

贴心提示:此类方法适合不经常换wordpress站点模板的站点。当然啦!有利就有弊,优点:可以不在考虑wordpress程序更新所带来的影响,缺点:站点换模板时候稍微麻烦点。需要在functions.php文件重新添加。

二、以当前时间命名

当使用添加媒体上传文件时会以“年月日时分秒+千位毫秒整数”的格式重命名文件,如“20171023122221765.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');

以上源代码来源自:MAOLAI博客

2条回应:“通过添加代码实现wordpress上传文件时 文件自动命名”

  1. 阿土说道:

    😐 很有趣,评论表情不支持ajax。

发表评论

电子邮件地址不会被公开。 必填项已用*标注