让wordpress上传支持中文文件名,网站迁移的时候不会出错

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

 

这个代码加入后,图片上传就会对文件进行重命名,后面网站在搬家的时候就不会有问题,建站公司一直都在用这个方法。

如果你在搬家的过程中遇到替换域名的问题可以查看文章

wordpress更换域名要怎样快速批量修改图片地址网站建设公司教你一招

 

中文文件名的文件在上传后,移动到对应文件夹会报错,可以修改/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”编码

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/259929.html

(0)
上一篇 2022年5月23日
下一篇 2022年5月23日

相关推荐

发表回复

登录后才能评论