最近几天 WordPress 爱好者群里很多网友问 WordPress 上传中文名附件乱码问题如何解决,正好闲来无事,在谷歌刨了半天找出一段处理 WordPress 上传中文名附件乱码问题的代码:

function upload_file($filename) {
$parts = explode('.', $filename);
$filename = array_shift($parts);
$extension = array_pop($parts);
foreach ( (array) $parts as $part)
$filename .= '.' . $part;

if(preg_match('/[一-龥]/u', $filename)){
$filename = md5($filename);
}
$filename .= '.' . $extension;
return $filename ;
}
add_filter('sanitize_file_name', 'upload_file', 5,1);

代码的效果是判断附件的文件名如果是中文就自动改成 md5 的储存名,测试了下该代码目前还是有效的,另外有些 WordPress 小白可能不知道代码加在哪,小编在这里提示下,此段代码要加到当前主题的 functions.php 文件中,或者 functions.php 包含的文件中。