WordPress发布文章时对上传的中文图片自动命名

WordPress作为外国人开发的开源优质网站搭建平台,已经很好地支持多语言,但是对于国人来说一个很不友善的地方就是,对中文图片名称的支持不是很好,这里说的不好不是说你上传图片后无法显示,而且你使用FTP登陆空间后,发现图片名称变成了乱码,或者网站转移服务器后发现原有的图片无法显示。
这种情况下,如何避免呢?最好的办法是不是使用带有中文名称的图片,但是很多人往往会忘记这一点,那么只好从程序入手,来改变这个问题。
其实想要解决这个问题也不难,你只需要将以下代码复制到你主题的functions.php文件中,上传图片时就会对图片进行自动命名(按照MD5规则转换),保证以后不管你使用FTP登陆查看还是后期转移服务器都不会出现问题。

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);