wordpress中文截断产生乱码解决方法-蚂蚁资源

wordpress中文截断产生乱码解决方法

wordpress的海量模板是它的亮点之一,国内众多高手设计的模板已经非常漂亮。 可是残酷的现实是大部分的模板都还是出于老外之手,老外在做模板的时候一般只会考虑到显示正常即可,而我们如果用中文来写博客毕竟和英文环境有所差别,这样可能会出现很多的问题,比如字体大小,乱码,这些都要手动调整。

话说调整CSS很多人都已经是轻车熟路了,本文不讨论。

不过可能大家会遇到类似下图的现象:


产生乱码的原因

这种乱码现象一般是出现在正文截断的时候,因为Wordpress模板的字符集是UTF-8,它对于英文来说是一个字母一个字节(8位)来编码,而中文却是一个汉字三个字节(24位)来编码。所以截断的函数只会判断在多少字节的地方去截,如果到了那个地方一个汉字只显示了三分之一或者三分之二的时候,那个汉字就不能完整显示,而函数又不能很智能的多截一个字节或者少截一个,怎么办?于是就产生了乱码。这个问题相信在很多有类似功能的国外模板上都会出现,这不是数据库的错,也不是字符集的问题,只是因为制作者在编写模板的时候并没有考虑到中文字符可能产生的问题。

所以,我们要替换截断的函数。简单来说,两步就可以搞定。

第一步

将以下两个函数写进主题所附带的

functions.php

文件中

复制代码代码如下:

function Limit_Char($max_char = 200, $more_text = ‘…’, $more_link_text = ”, $limit_type = ‘content’) {

if ($limit_type == ‘title’) { $limiter = get_the_title(); }

else { $limiter = get_the_content(); }

$limiter = apply_filters(‘the_content’, $limiter);

$limiter = strip_tags(str_replace(‘]]>’, ‘]]>’, $limiter));

if (strlen($limiter) > $max_char) {

$limiter = substr($limiter, 0, $max_char+1);

$limiter = utf8_conver($limiter);

echo $limiter;

echo $more_text;

if ($more_link_text != ”) {

echo ‘ <a href=”‘;

echo the_permalink();

echo ‘”>’.$more_link_text.'</a>’;

}

} else {

echo $limiter;

}

}

function utf8_conver($str) {

$len = strlen($str);

for ($i=strlen($str)-1; $i>=0; $i-=1){

$hex .= ‘ ‘.ord($str[$i]);

$ch = ord($str[$i]);

if (($ch & 128)==0) return(substr($str,0,$i));

if (($ch & 192)==192) return(substr($str,0,$i));

}

return($str.$hex);

}

第二步

把模板文件中比如

index.php

中将截断函数替换成新的。

复制代码代码如下:

<?php Limit_Char(200); ?>

<!– 200是你需要截断多少字节的长度,根据实际情况修改。–>

修改完成,大功告成啦。理论上用这个办法,只要是截断的问题都可以得到解决。

BTW:本人菜鸟一只。高手轻点拍砖。

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"www.antziyuan.com",如遇到无法解压的请联系管理员!

蚂蚁资源 » wordpress中文截断产生乱码解决方法

常见问题FAQ

免费下载或者VIP会员专享资源能否直接商用?
该资源仅供学习和研究传播,大家请在下载后24小时内删除,一切关于该资源商业行为与我们无关。 请勿将该软件进行商业交易、转载等行为,该软件只为研究、学习所提供,该软件使用后发生的一切问题与本站无关。
提示下载完但解压或打开不了?
最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
找不到素材资源介绍文章里的示例图片?
对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
蚂蚁资源
大家都喜欢的资源网站!
  • 48会员总数(位)
  • 793资源总数(个)
  • 1本周发布(个)
  • 0 今日发布(个)
  • 178稳定运行(天)

提供最优质的资源集合

立即查看 了解详情
升级SVIP尊享更多特权立即升级