这几天安装好了wordpress,转而又发现一个问题,唯独分类页面和标签页面title筹码查看一下源码让我也吃惊,发现中文全部是乱码,究竟是什么原因呢?原来是由于我安装了All In One Seo Pack(seo插件)导到wordpress分类页和标签页标题出现乱码,知道问题了,就知道怎么解决了,上网查了下,一共有两种方法,一个通过后台设置,另一个需要改动一下插件代码。

方法一:后台设置法

进入All In One Seo Pack设置,把Rewrite Title复选框取消,这样这个插件就不会重写标题,标题则默认按照Wp默认标题显示,那么也不会出现乱码了,但我们为了方便优化,建议高级用户选择方法二。

方法二:修改代码法

1、进入插件,编辑,选择All In One Seo Pack插件,然后编辑aioseop。class。php。

2、查找函数function capitalize($s)

3、将下面的一行代码删除当然也可以用“/* */“注释掉。

$tokens[$key] = strtoupper(substr($tokens[$key], 0, 1)) 。 substr($tokens[$key], 1);

4、完成之后,再将此文件中的函数:ucwords全部替换为:$this->capitalize

导致标题第一个字符乱码的原因是:All In One Seo Pack插件总是尝试将标题的第一个字符转化为大写。如果是英文字符,这样做没有问题;但大家都知道中文字符包含两个字节,All In One Seo Pack会根据一个预设的映射表将第一个字节转化为大写,这样就把这个汉字给破坏了。不过capitalize函数可以修改的更完善,不但可以保留原有的功能,而且也不会出现问题。但我们不需要它把第一个字符转化成大写,就直接将那一行有问题的代码删除掉了,不知道原作者当时是怎么考虑的,至今尚未更新这个bug。