wordpress上传文件,如果文件名重复的话,会覆盖原文件,而中文名称的文件则会出现乱码,对于同一天上传文件较多的站点,手动修改显然很麻烦。百度有很多方法是通过修改程序源文件实现的,对于wordpress的更新速度,相当不方便。 下面介绍的方法是通过在当前主题的functions.php文件里添加相关函数代码实现。缺点是每次更换主题的时候都要重新添加一次,适合不常更换主题模板的站点;优点当然是不受wordpress程序更新的影响! 把下面的代码添加至当前主题functions.php文件:(添加在第一行的<?php下面)

1
2
3
4
5
6
7
function rename_filename($filename) {
$info = pathinfo($filename);
$ext = empty($info\['extension'\]) ? '' : '.' . $info\['extension'\];
$name = basename($filename, $ext);
return substr(md5($name), 0, 10) . $ext;
}
add_filter('sanitize\_file\_name', 'rename\_filename', 10);

以上代码可以实现文件名称在上传过程中自动重命名,新的名称规则是由系统自动生成的一个32位的MD5加密文件名,由于默认生成的32位文件名有点长,所以使用substr(md5($name), 0, 10) 截断将其设置为10位。