其实这个方法是摘自博友的博客的,小子的博客主题不是自己做的,不知道主题作者是不是就不用文章摘要,就一直没发现这个问题,我发现了,但是没特意的去修改它,在有一段时间内,都是使用手动添加more标签来实现文章摘要的,毕竟一次发表的文章随手加入一个标签很简单,而且自动摘要的往往还会出现不和理的其他情况,比如只摘了图片或者其他原素,而没显示文字等情况 。所以小子一般不使用自动摘要的插件。今天看到相关方法了,为了以后自己方便还是转过来了。
文章摘要产生乱码的原因其实很简单,文章截断使用的是截取函数实现的地方,而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,'…','<span style="color: #ff0000;">utf-8</span>'); ?> <span class=”more”> <a href=”<?php the_permalink() ?>” title=”阅读更多 <?php the_title(); ?>” rel=”bookmark”>Read More</a> </span> </div>
红色的”utf-8″ 就是要添加上去的函数,修改好之后保存上传,就正常截取了。本文摘自博友
朱定聪的博客,连接http://www.congblog.cn/807.html