我一直有一个坏习惯,上传图片的时候喜欢把图片命名为1.xxx,这就导致了wordpress会自动将图片变成1(x).xxx的形式,这样在mysql查询数据库的时候就增加了查询时间,对优化不利,所以我们要让wordpress自动将我们上传的东西重命名。
时间戳
第一种方法就是将上传的图片变成时间戳,因为我们一般是自己上传,根本不存在同一时间上传的情况,所以不用担心时间戳重复。将以下代码粘贴functions.php文件中即可。
1 2 3 4 5 6 7 |
//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'); |
wordpress会自动将文件命名为20190706122221765.xxx
MD5码
第二种方法就是以MD5码来命名文件,代码默认以20字符来截断,操作方式跟上面的时间戳一样。
1 2 3 4 5 6 7 |
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); |
如果想在本地直接修改可以全选文件,然后按F2输入字母或者数字即可全部重命名。
评论