如何使WordPress上传文件时自动重命名

  • A+
所属分类:wordpress主题

不知道大家在使用WordPress主题博客时有没有这么一个问题存在,就是上传的文件(不管是图片、表格、文件)都要自己重新命名,这样一来非常之麻烦。我们都知道,作为网站的内容,一定要讲究图文结合的形式,这样才不会使用户在浏览的时候感觉到视觉疲劳,才能更好的留住用户,减少网站跳出率。

如何使WordPress上传文件时自动重命名

但如果我们网站的内容不多还没事,内容一多的话会导致我们在命名文件时而和以前的文件命所相冲突。比如说:我们今天更新了三篇文章,这里面三篇文章里都各自有几张图片,三篇下来就会有十几张,然后我们在命名的时候可能搞错了命名,那么久会导致图片以1.jpg、1(1).jpg之类的形式存在。刚好又在同一天的同一个文件夹下面,这样看起来极其不雅观。

叶忠文不知道大家的使用习惯如何,但本人是比较喜欢那种自己自动命名的样式。例如:今天2019年7月26上传的一篇文章,那么它就会以20190728某某某的形式存在,这样做的目的有二:首先是不会有重复不好找的问题出现,其次看起来也比较协调、雅观。

之前也有朋友问过这样的问题怎么操作,怎么解决,但都无功而返。就在今天无聊时逛到知更鸟Begin主题网站时,所看到鸟哥分享了这么一篇文章,所以也就借花献佛的献给每位喜欢折腾的朋友们。好了!咱们话不多说,下面进入教程时间!

方法一,按时间重命名

上传文件时会以“年月日时分秒+千位毫秒整数”的格式重命名文件,如“2019072811311765.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位。

    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模板文件中即可。以上代码操作极其简单方便,也很节省我们的时间。当然!我们也可以在电脑上全选文件,然后按F2,之后直接输入字母或者数字,再接着回车重命名,这样的方法也很方便。

当然,最主要的还是看我们的一个使用习惯,本人用的是方法一,感觉还不错,有喜欢的朋友们也可以试试。

Joson

发表评论

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