WordPress 官方文字截断函数 wp_trim_words 的一点不足

文 / @UTHEME

关于WordPress文字截取函数

您好,我是小本本,今天想和大家分享一下关于WordPress的文字截取函数,特别是在处理中英文混合内容时可能遇到的问题。

从WordPress 3.3版本开始,官方提供了文字阶段函数,使得在截取文字作为摘要时更加方便。但是,当网站中包含中英文混合内容时,可能会出现一些问题。

中英文文字截取的区别

要理解这个问题,我们需要先从中英文的区别说起。语言的最小单位是字符,在中文中,一个字符(相当于英语的字母)就能表达一个完整的意思,而英文中,一个字母表达完整意思的情况很少,大多数时候需要由几个字母组成的单词。

从程序分词的角度来说,英文分词是以空格作为分词边界的,而中文分词则是以Unicode字符标记为边界的。在字数统计上,中文一个字符就是一个字,而英语一个单词才能算一个字。

解决方案

WordPress的文字截取函数wp_trim_words中的第二个参数$num_words是需要截取的字数,而这恰恰会导致中英文混合内容在截取后长度出现差异,这对于排版是不利的。

解决这个问题的办法是使用mb_strimwidth函数代替。该函数直接按照字符数截取,不管是英语、汉语还是火星语,都一视同仁,能够在排版上得到良好的效果。

总之,任何函数都有其存在的意义,都是为了解决某些问题而存在的。我们在使用这些函数时,应该一视同仁,选用最适合当前场景的函数。

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。