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

所属分类: CMS教程 / WordPress 阅读数: 1709
收藏 0 赞 0 分享
可是残酷的现实是大部分的模板都还是出于老外之手,老外在做模板的时候一般只会考虑到显示正常即可,而我们如果用中文来写博客毕竟和英文环境有所差别,这样可能会出现很多的问题,比如字体大小,乱码,这些都要手动调整。

话说调整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:本人菜鸟一只。高手轻点拍砖。
更多精彩内容其他人还在看

WordPress 网站如何防范大规模暴力破解攻击

本文主要讲述了WordPress 网站如何防范大规模暴力破解攻击,有兴趣的朋友一起来看看吧
收藏 0 赞 0 分享

WordPress 4.1 发布:开启免干扰写作模式

WordPress 4.1 正式版发布,这次更新带来了2015主题(Twenty Fifteen),免干扰写作模式,隐藏各种杂乱以及干扰选项,让博主全身心灌注于文章写作。
收藏 0 赞 0 分享

WordPress分类与标签等存档页实现置顶的方法

这篇文章主要为大家介绍了WordPress分类与标签等存档页实现置顶的方法,通过二次开发实现存档页的置顶功能,是非常实用的技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

WordPress后台显示相关用户文章相关联评论的方法

这篇文章主要为大家介绍了WordPress后台显示相关用户文章相关联评论的方法,通过增加自定义函数SQL调用来实现显示相关评论的功能,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享

WordPress自动给文章添加nofollow属性的实现方法

这篇文章主要为大家介绍了WordPress自动给文章添加nofollow属性的实现方法,可通过Nofollow for external link 插件实现文章页自动添加nofollow属性的功能,是非常实用的技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

WordPress快速添加友情链接功能的方法

这篇文章主要为大家介绍了WordPress快速添加友情链接功能的方法,通过自定义函数实现后台友情链接功能,是WordPress二次开发的典型应用,需要的朋友可以参考下
收藏 0 赞 0 分享

多备份:一键自动备份你的WordPress博客

数据备份是博客的头等大事,尤其是当你数据丢失或者网站被黑的时候,你会更加强烈的感觉到。
收藏 0 赞 0 分享

WordPress使用RSS Feed输出自定义文章类型内容的方法

这篇文章主要为大家介绍了WordPress使用RSS Feed输出自定义文章类型内容的方法,可通过简单的自定义函数实现这一功能,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享

WordPress实现搜索结果包括自定义文章类型内容的方法

这篇文章主要为大家介绍了WordPress实现搜索结果包括自定义文章类型内容的方法,通过自定义函数的设置来实现WordPress搜索结果包括自定义文章类型,是非常实用的技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

Wordpress自动将包含长链接的评论标记为垃圾评论的方法

这篇文章主要为大家介绍了Wordpress自动将包含长链接的评论标记为垃圾评论的方法,介绍了常用的几种经典方法,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多