WordPress上传中文名图片不显示的历史遗留问题解决方法(独家改进)

龙哥以前刚刚接触wordpress 的时候上传图片发现后台媒体库和编辑都不显示,于是简单找了一下原因。

其实就是WordPress网站上传包含中文名的图片,网页会无法正常显示出图片。

网上说这个情况一般都是Linux主机的服务器,Windows主机没有这个问题。

但龙哥发现中文在widdows 主机有时候也是不显示,前端显示还算挺正常,但是后端就不正常了!

因为Linux主机无法识别中文字符,导致网站带中文字符的图片无法正常显示。

由于很多图片都是截图的方式获取的,比如QQ,微信,360等截图工具,截取图片后会自动加入中文名称。

如果直接上传就会出现上面无法显示的问题。

这样很不利于我们日常操作,和间接的影响网站的seo

解决方法也很简单,可以修改WordPress程序让上传的文件自动重新命名,这样就从根本上解决了问题。(注意每次wordpress更新记得更改一下)

具体解决方法如下:

修改网站程序: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干货技巧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

longm龙哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值