WordPress上传文件重命名中文名称

Linux主机不支持中文路径,有一些朋友刚开始使用Windows主机,WordPress上传文件时文件名称是中文,后来搬迁到Linux服务器问题就来了,而此时如果图片比较多,手动逐个修改将是一件非常痛苦的事。

通过WordPress钩子sanitize_file_name可以实现上传文件自动将中文名称改为英文,并且不影响原本就是英文名称的文件。

将以下代码粘贴到主题文件functions.php中:

function bzg_filename( $filename ) {
	$info = pathinfo( $filename );
	$ext = empty( $info['extension'] ) ? '' : '.' . $info['extension'];
	$name = basename( $filename, $ext );
	if ( ! preg_match( '/^[0-9a-zA-Z_-]+$/', $name ) ) {
		$name = substr( md5( $name ), 0, 15 );
	}
	return $name . $ext;
}
add_filter( 'sanitize_file_name', 'bzg_filename', 10 );
阿里云