在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函数可以修改的更完善,既保留原有的功能,又不会出现问题。但我不需要它把第一个字符转化成大写,就直接将那一行有问题的代码删除掉了。
除特别声明为转载内容外,本站所有内容均为作者原创,谢绝任何单位和个人不经许可的复制和转播!
对于确有转载需要的,请先与作者联系,在获得允许后烦请在转载时保留文章出处。
本文出自Lupin's Blog:http://www.cnzui.com/archives/255