来源:feel’s Blog

接触WP不久,在网上看到wordpress2.3以前的版本不支持TAG功能,不知道是否属实。但是WordPress2.3自带了tag功能, 不过它对中文tag的支持却不是那么理想。加上自己用的主机是IIS的,所以一直只能使用英文的tag,或者给每个标签对应一个英文缩略名,可操作起来相 当的麻烦了。也用过一个叫Simple Tags的插件,它对标签的管理的确方便,但是问题并没有得到解决,还出现一个问题就是访问速度,不知道是不是插件原因,经过自己的反复研究,终于知道了问题的所在。原因就是编码问题,UTF-8和GBK之间转换的问题。

解决办法其实也很简单,使用PHP内置函数 mb_convert_encoding()进行转换:

标签搜索的URL例子:http://www.ruofeel.cn/index.php/archives/tag/%e5%9c%b0%e9%9c%87
IIS对URL截取的时候取得的是GBK的编码,但是我们的主题只要有中文都用的UTF-8的编码,所以我们要对编码进行处理后在交给数据库进行查询;请看下面的方法:
1.我们首先找到根目录下(是网站根目录,不是主题)的wp-includesclasses.php文件;
2.用编辑器打开文件,找到46行和51行,这是我们要修改的地方。

$pathinfo = $_SERVER['PATH_INFO'];

$req_uri = $_SERVER['REQUEST_URI'];

分别修改成以下程序:

$pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], “UTF-8″, “GBK”)

$req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], “UTF-8″, “GBK”);

到这里,会PHP的应该很清楚了。就是对编码做了简单的处理,由GBK转换成UTF-8。当然不会PHP的也没事塞,直接修改了上传上去用就是了。具体例子就直接看本文下面的“标签”。从这一刻起,你就可以完全的使用中文标签了。