即使wordpress拥有许多漂亮主题模板,但也总有许多令人不满意的细节,特别是对于我们这种中文用户那是更加头疼。朱定聪使用这个主题有一段时间了,一直在为文章摘要结尾出现乱码而困扰,期间也请教过主题作者威威,也没能解决到问题,今天我找了一下相关文章资料,终于找到了解决方法。
文章摘要产生乱码的原因,这种乱码现象一般是出现在文章正文结尾截断的地方,那是因为WordPress模板的默认字符集原先就是UTF-8,但是它对于英文来说是一 个字母一个字节(8位)来编码,而中文却是一个汉字三个字节(24位)来编码。WordPress 显示摘要的时候,英文内容摘要往往可以正常显示,但是中文摘要在截断之后,通常往往会出现以两个类似于??, □□, 或者■■等乱码符号。所以文章摘要截断的函数只会 判断在多少字节的地方去截,如果到了那个地方一个汉字只显示了三分之一或者三分之二的时候,那么那个汉字就不能够完整的显示, 而函数又不能很智能的多截一个字节或者少截一个,怎么办呢?于是就导致了文章摘要产生了乱码。这个问题我相信在很多有类似功能的国外模板上都会出现,这不是数据库的错,也不 是字符集的问题,只是因为作者在编写模板的时候并没有考虑到中文字符可能产生的问题。
所以,我们要手动修改截断的函数。找到正在使用的主题下的index.php。
<div class="entry_post"><?php echo mb_strimwidth(strip_tags(apply_filters('the_content', $post->post_content)), 0, 365,"...","utf-8"); ?><span class="more"><a href="<?php the_permalink() ?>" title="详细阅读 <?php the_title(); ?>" rel="bookmark">阅读全文</a></span></div>
红色的"utf-8" 就是我们添加上去的函数,修改好之后保存上传,终于正常了。
记录下,我一直都用插件wp-utf8-excerpt来设置的,只需要改一个小代码这么简单。
header(‘Content-Type: text/html; charset=UTF-8’); 这样强制浏览器编码其实应该也可以诶
好吧
😀 😳 重来不用摘要,都是more了
我那个主题, 在index 下没有这句话也。。。 😥
😮 学习一下
我一个站里的特色图片点击不能进入文章,不知道要怎么搞,可否帮帮我呀
学习,呵呵。陌凡给朋友拜年啦,呵呵,祝朋友龙年腾达哦!
这个程序真的还没有用,希望用的时候能受用,先收着了。谢谢博主分享!
为嘛不是ajax式的提交评论了 ❓
额,我也是这个主题,木有遇过这个问题啊,诡异
我对主题的热情不是很高。一年估计也就换一两个。至于摘要用的是一个国人自己编写的,对中文的支持刚刚的。
祝博主新年快乐哈
大过年的博主挺积极啊
自己动手 快乐轻松~
我在显示囧繁体字、新兴字的时候显示乱码!
收藏了~~~~
果然管用了,好东西