WordPress上传中文名图片不显示

ė 128 6 0
本文最近更新于24.08.6 周二请自行判断新内容

修改网站程序:wp-admin/includes/file.php 找到下面代码:

$new_file = $uploads['path'] . "/$filename";

修改为:

$new_file = $uploads['path'] . "/".date("YmdHis").floor(microtime()*1000).".".$ext;

以上代码意思就是,上传文件就会以“年月日时分秒+千位毫秒整数”的格式重命名文件。这就再也不用担心图片文件名相同而覆盖了原文件。

其实这样的原理就是实现wordpress上传图片自动重命名了。

所以龙哥做了个2.0版本,因为有时候我命名的图片是有自身含义的,并且是英文名对上传也没有影响,但是改了代码之后全部给我统一更改了。

废话不多说,上代码!

if(preg_match('/[\x{4e00}-\x{9fa5}]/u', $filename))//意思是包含中文才修改,不然就给我保留下来
$new_file = $uploads['path'] . "/".date("YmdHis").floor(microtime()*1000).".".$ext; 
else $new_file = $uploads['path'] . "/$filename";

今天的内容就到这里了,喜欢的关注一下龙哥,分享更多wordpress干货技巧

 

第三种方法:更改wordpress主题函数文件functions.php文件

在当前WordPress主题文件下面的functions.php后面加上以下代码即可,以下代码会检测一下上传的图片名中是否包含中文,如果包含中文就重命名,如果不包含中文,就使用原来的图片名称

add_filter('sanitize_file_name','fanly_custom_upload_name', 5, 1 );
function fanly_custom_upload_name($file){
$info = pathinfo($file);
$ext = empty($info['extension']) ? '' : '.' . $info['extension'];
$name = basename($file, $ext);
if(preg_match("/[一-龥]/u",$file)){//中文换名
$file = substr(md5($name), 0, 20) . rand(00,99) . $ext;//截取前20位MD5长度,加上两位随机
}elseif(is_numeric($name)){//数字换名
$file = substr(md5($name), 0, 20) . rand(00,99) . $ext;//截取前20位MD5长度,加上两位随机
}
return $file;
}
栖息邦 收藏Ctrl+D 转载注明来源
来源- - 通过投稿渠道发表
管理员登录
注册

提示:点击上下面区域关闭

字号调整

View My Stats
空位 空位
本次加载耗时:0.279s