以下方法,本人亲自测试成功,欢迎提出更合理的方法。
在wordpress安装过All In One Seo Pack (SEO插件)之后发现在:标签页、目录页、搜索页等凡是经Seo Pack重写过的标题第一个字符都是乱码。

解决方法:
1. 最简单的解决办法就是:进入Seo Pack设置,将Rewrite Title选择框取消选择,这样Seo Pack就不会重写标题,标题显示为Wordpress默认标题,就不会出现乱码了。

2. 如果想使用Seo Pack的标题重写功能,那么就需要修改Seo Pack的代码,将其中存在bug的地方修改掉,步骤如下:

进入插件->编辑,选择编辑All In One Seo Pack (SEO插件), 然后选择编辑文件:aioseop.class.php,

找到函数:
function capitalize($s)
将下面的一行代码删除或注释掉:
$tokens[$key] = strtoupper(substr($tokens[$key], 0, 1)) . substr($tokens[$key], 1);

然后,将此文件中的函数:ucwords全部替换为:$this->capitalize

导致标题第一个字符乱码的原因是:seo pack总是尝试将标题的第一个字符转化为大写。如果是英文字符,这样做没有问题;但一个中文字符包含两个字节,seo pack会根据一个预设的映射表将第一个字节转化为大写,这样就把这个汉字给破坏了。

其实capitalize函数可以修改的更完善,既保留原有的功能,又不会出现问题。但我不需要它把第一个字符转化成大写,就直接将那一行有问题的代码删除掉了。

以上方法本人亲自测试成功,如有问题可留言.

原文:http://blog.sina.com.cn/s/blog_679738370100ii8a.html


寒林

www.3code.cn 专注WordPress企业主题