巧用PHP正则表达式替换解决WP自动截断函数中文处理

问题描述

WP的自动截断函数the_excerpt()可以对文章输出内容进行自动截断. 但是这一截断效果对中文的处理不是很好, 导致有些中文文章的摘要明显长于英文文章. 原因就是中文的标点符号被当成了字符(就像汉字一样), 并不是WP默认的断句符号. 于是一个办法是所有的文章都使用英文标点, 问题基本就解决了. 但是, 我们时不时的转载别人的文章时, 还是会碰到使用的是中文标点的情形, 这样我们不妨写一个php函数对文章输出内容进行过滤:
具体代码如下, 请把它加到你模板的functions.php的最后(但是是在 ?> 之前哈 :-) )

最后请确保保存代码格式为UTF8, 否则要转码. 例如你用Notepad++的话直接:格式->转为UTF8无BOM编码格式就行了.

再看看你的输出, 是不是长短都差不多了?

注意, 上述代码中介于/与/ims是中文标点符号, 由于我的网站已经替换, 所以你需要手动修改. 即把英文格式的标点换为中文格式的(注意有些替换还有空格也要去掉). 当然你也可以吧加到the_expert中, 这样子可能就不会对正文影响了.

发表评论