最近几天 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 包含的文件中。