即使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″ 就是我们添加上去的函数,注意双引号前面还有个逗号,修改好之后保存上传,终于正常了。