建议看过这里来 WordPress 插件 All in One SEO Pack 生成中文描述的解决
对于 SEO 来说,Title、Description、Keywords 是很重要的,尤其是前两者,它们直接反应在搜索引擎的条目中。对于英文博客来说 All in One SEO Pack 是做得很不错的,自动截取的描述完全能胜任。然而中文字符集的问题,依然按照英文那样来计算长度截取描述的话,你会发现在搜索引擎出来的条目中描述基本过短,因为 UTF8 的字符基本是一个顶 3。
所以要用这个插件来支持中文博客,那就得改,改改更健康。很多人说 All in One SEO Pack 影响了 Baidu 的收录,我不觉得,因为我一直用它,挺好的。
下面说说怎么来改它使之更好的支持中文,需要改动的文件只有一个,就是 aioseop.class.php。这里所针对的版本是今天的最新版 1.6.13,有三处要改动。
1. 调整截取字数
英文截取默认是 160,中文得加长, 350 到 400 差不多,不过我实践证明 300 是个不错的数字。合不合适,界时看看搜索引擎中你的文章描述就知道了。太长了搜索引擎也是给你点点点点掉。
1 2 3 4 5 6 |
var $maximum_description_length = 300;//160; /** Minimum number of chars an excerpt should be so that it can be used * as description. Touch only if you know what you're doing */ var $minimum_description_length = 80;//1; |
找到 $maximum_description_length 和 $minimum_description_length,分别由原来的 160,1 改为 300,80.
2. 防止截取中文产生乱码
把函数 trim_excerpt_without_filters($text) 的内容替换如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
function trim_excerpt_without_filters($text) { $text = str_replace(']]>', ']]>', $text); $text = strip_tags($text); $max = $this->maximum_description_length; if ($max < strlen($text)) { while($text[$max] != ' ' && $text[$max] != '\n' && $max > $this->minimum_description_length) { $max--; } } if($max == $this->minimum_description_length) { $max = $this->maximum_description_length; } if($text[$max - 1] == '\r') { $max--; } if(ord($text[$max]) > 0x7F && ord($text[$max]) < 0xC0) { while(ord($text[$max]) <= 0xC0) $max--; } $text = substr($text, 0, $max); return trim(stripcslashes($text)); } |
3. 一个字符的问题
比较时把大于号 > 改成大于等于号 >=,找到
1 2 |
if (isset($description) && (strlen($description) > $this->minimum_description_length) && !(is_home() && is_paged())) { |
改为
1 2 |
if (isset($description) && (strlen($description) >= $this->minimum_description_length) && !(is_home() && is_paged())) { |
完成了,最后别忘了在它的选项中把几个 noindex 选项去掉,也许就是这几个 noindex 选项惹恼了百毒吧。
参考:1. 解决all in one seo pack自动取中文描述问题 适合最新版 all in one seo pack V1.6.10.3
2. 修改wordpress插件All in One SEO支持中文截断
本文链接 https://yanbin.blog/all-in-one-seo-pack-support-chinese/, 来自 隔叶黄莺 Yanbin Blog
[版权声明] 本文采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。