wordpress建站时,直接上传图片用中文名称,以后再换服务器空间的时候就会出现图片找不到的情况。这个需要再系统安装好要开始使用的时候修改一下主题的functions.php文件 加入以下代码
function rename_filename($filename) {
$info = pathinfo($filename);
$ext = empty($info['extension']) ? '' : '.' . $info['extension'];
$name = basename($filename, $ext);
return substr(md5($name), 0, 20) . $ext;
}
add_filter('sanitize_file_name', 'rename_filename', 10);
这个代码加入后,图片上传就会对文件进行重命名,后面网站在搬家的时候就不会有问题,厦门建站公司一直都在用这个方法。
如果你在搬家的过程中遇到替换域名的问题可以查看文章
中文文件名的文件在上传后,移动到对应文件夹会报错,可以修改/wp-admin/includes/file.php文件,修改以下两处即可,在wordpress3.2下测试通过。
function wp_handle_upload( &$file, $overrides = false, $time = null ) {
//….
// Move the file to the uploads dir
//$new_file = $uploads['path'] . “/$filename”;
// 修正中文文件名编码问题
$new_file = $uploads['path'] . “/” . iconv(“UTF-8″,”GB2312″,$filename);
//…
//return apply_filters( ‘wp_handle_upload’, array( ‘file’ => $new_file, ‘url’ => $url, ‘type’ => $type ), ‘upload’ );
// 修正中文文件名编码问题
return apply_filters( ‘wp_handle_upload’, array( ‘file’ => $uploads['path'] . “/$filename”, ‘url’ => $url, ‘type’ => $type ) , ‘upload’);
}
注:其中的 iconv(“UTF-8″,”GB2312″,$filename); 也可以使用“GBK”编码