让我们可爱的 Simple-Tags 支持中文 (wp 3.2.1可用,2.0-beta9)

Simple-Tags (官网链接) 真是个牛货,提供了多个 WP 插件所提供的功能,代码简练。并且提供了很多站长所期望的内链功能。唯一的遗憾由于开发者都是老外,没有考虑到使用扩展字符集的文字,中文就是这样的语言。所以很多站长发现他不能支持中文,蛋疼啊。

多次尝试下,如下的方法可以让 Simple-Tags 支持中文,其实也就是在匹配表达式上动手脚,去掉老外严谨的匹配条件。

进入 wp-content/plugins/simple-tags/inc(Simple-Tags 2.0-beta9是这个路径),打开 class.client.autoterms.php 文件,第 94 行(或者左右)。有如下代码,

if ( preg_match("/\b".$term."\b/i", $content) )

我们要动到的就是这句话。注意其中 \b 这个字符在正则表达式中匹配英文是时常使用到。\b 就是用在你匹配整个单词的时候,如果不是整个单词就不匹配。我的修改如下,

if ( preg_match("/".$term."/i", $content) )

这样就能让 Simple-Tags 匹配扩展字符集的中文字符了。当然这样的修改会对 php 服务器稍微加大点负担,也会偶尔匹配到英文单词的中间字符。不过英文不多的情况下,还是不错的。


Comments

3 responses to “让我们可爱的 Simple-Tags 支持中文 (wp 3.2.1可用,2.0-beta9)”

  1. […] 提出了解决方法, 但是是针对 auto terms 功能,而非 auto links。 而 Vladimir Kolesnikov 也在 […]

  2. wp3.3.1能用么?我修改了文件后还是不能获取中文标签。

    1. 可以尝试下 horan 针对 autolink 的方法:

      在 simple-tags\inc\class.client.autolinks.php 中找到下面两行并标注掉:
      $match = ‘/(\PL|\A)(‘ . preg_quote($term_name, “/”) . ‘)(\PL|\Z)/u’.$case;
      $substitute = ‘$1$2$3″;

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.