用过wordpress的应该都知道如果我们上传的文件的名字中有中文,上传到linux服务上后发现会是乱码,所以有必要把上传的文件做一个自动重命名...这样也会方便我们管理
在functions.php中加入以下代码:
1 2 3 4 5 6 7 8 |
function new_filename($filename) { $info = pathinfo($filename); $ext = empty($info['extension']) ? '' : '.' . $info['extension']; $name = basename($filename, $ext); return md5($name) . $ext; } add_filter('sanitize_file_name', 'new_filename', 10); |
添加保存之后,就可以实现了文件的自动更名,自动生成的是一个32个的md5加密的文件名,如果你认识32位的文件名太长了
你可以使用 substr()来截取你想要的长度,代码如下,看到下面有一个15了吗?那个就是md5的长度,修改成适合自己的就行了
1 2 3 4 5 6 7 8 |
function new_filename($filename) { $info = pathinfo($filename); $ext = empty($info['extension']) ? '' : '.' . $info['extension']; $name = basename($filename, $ext); return substr(md5($name), 0, 15) . $ext; } add_filter('sanitize_file_name', 'new_filename', 10); |