如何用代码完美替代 WordPress 中的 All in One SEO Pack 插件
昨天写了些自己所用的 WordPress 插件,稍微提及了一下为什么自己没有使用 All in One SEO Pack 这个插件。那不用插件还怎么 SEO 呢?我们今天就来解决这个问题。用代码来完美替代 All in One SEO 插件。
1、Title 的优化
在主题的 Header.php 中修改 Title 标签为
1 | <title><?php if (is_home() ) {?>FORECE博客|关注互联网创业和IT技术<?php } else {?><?php wp_title(”);?> |FORECE博客<?php } ?></title> |
2、关键字与描述
Keywords 与 Description 在SEO中是很重要的元素,所以也不能漏掉。这里有两种修改方法。
用 Tag 与 摘要自动填写 Keywords 与 Description
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | <?php ##定义一个函数.解决截取中文乱码的问题 if (!function_exists('utf8Substr')) { function utf8Substr($str, $from, $len) { return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'. '((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s', '$1',$str); } } if ( is_home() ){ $description = "FORECE的博客是一个关注互联网和IT技术的博客,主要提供本人的国外生活日志,互联网资讯,IT技术和网络赚钱等信息"; $keywords = "FORECE BLOG,日志,博客,Windowx,IT,技术,系统,加拿大,蒙特利尔,生活,网赚"; } elseif ( is_single() ){ if ($post->post_excerpt) { $description = $post->post_excerpt; } else { if(preg_match('/<p>(.*)<\/p>/iU',trim(strip_tags($post->post_content,"<p>")),$result)){ $post_content = $result['1']; } else { $post_content_r = explode("\n",trim(strip_tags($post->post_content))); $post_content = $post_content_r['0']; } $description = utf8Substr($post_content,0,220); } $keywords = ""; $tags = wp_get_post_tags($post->ID); foreach ($tags as $tag ) { $keywords = $keywords . $tag->name . ","; } } ?> <?php echo "\n"; ?> <meta name="description" content="<?php echo trim($description); ?>" /> <meta name="keywords" content="<?php echo rtrim($keywords,','); ?>" /> |
这个方法相对简单,如果给日志添加了摘要就把摘要做为 Description,如果没有设置摘要,则把文章标题作为Description,而标签直接作为 Keywords。
再放上另外一种方法:(不过这种方法对于特殊符号会自动转义变成乱码,比如 -,#之类的符号)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?if (is_home()){ $description = "FORECE的博客是一个关注互联网和IT技术的博客,主要提供本人的国外生活日志,互联网资讯,IT技术和网络赚钱等信息"; $keywords = "FORECE 博客,日志,国外生活,加拿大,蒙特利尔,Windows,IT,技术,互联网,网赚,WordPress"; } elseif (is_single()){ if ($post->post_excerpt) { $description = $post->post_excerpt; } else { $description = mb_strimwidth(strip_tags(apply_filters('the_content',$post->post_content)),0,220); } $keywords = ""; $tags = wp_get_post_tags($post->ID); foreach ($tags as $tag ) { $keywords = $keywords . $tag->name . ", "; } } ?> <meta name="keywords" content="<?=$keywords?>" /> <meta name="description" content="<?=$description?>" /> |
网上有些文章提到的用如下代码截断文章办法其实不行,对于中文来说会产生乱码,甚至导致整个页面乱码:
1 |
如果换成
1 |
就没有问题了
[…] 参考文章来源:这里 […]
[...] 本文由“教师论坛 | wordpress”整理自这里 [...]
博主..这个优化方法好啊.
谢谢分享
博主是不是没有用这句代码?
用上了这个
你好,怎么加函数呢
加什么函数啊?
谢谢啦 学习了 之前用all in one seo 害我中文博客的description 没被抓取出来 现在替换了终于好用了
你的这些代码全部半角转全角了,复制过来后没法用,能否用txt发份给我?273359343@qq.com 谢谢!
文章的关键字自定要,难道还要修改发表页面,自己加上输入框?
allseo呢?文章的关键字 怎么输入啊
不用修改页面,WP发布系统允许有自定义域,也就是说可以自己加载变量。而$keywords, $description 就是两个变量。在写文章的时候加入这两个定义域名,在域中输入变量值就可以了。装个WP试一下就知道了。
呵呵,学习技术哦,嘿嘿
WP插件就是牛,还多,不过我也就使用了 super cache,wp-easyarchives还有个常用的回复插件~~~
插件用的越少越好。
WP太多插件,浩如煙海~可惜,我懂的不多.象你学习
我懂得也不太多。最近狂补WP知识。
囧~转WP了,欢迎啊~
被逼的,没办法啊。
说实话,真没看懂,慢慢学吧。这时代,更新太快,步子赶不上。
确实,这玩意别说一年,几个月不接触就完全脱轨了。
好专业!好复杂啊~
我的不知道怎么了不能用,放进去后Keywords 与 Description都能显示为中文,但是其他的都是乱码了。真郁闷。
其他的?比如?
其他页面都正常,只有首页有问题。。
可能和其他插件冲突了吧?
还是all seo插件吧,代码改改麻烦,自定义也是比较啰嗦的。
all seo插件不好么?
all seo 很好,但是如果有适合中文站的就更好了,WP有个截断符的问题。所以中文不推荐使用 ALL SEO 插件。
来学习了。。我比较懒。。也不会。 就用BO-BLOG的插件。。不会搞。
慢慢来吧,GOOGLE就是在这种时候拿来用的。
貌似也开始走技术路线了?
呃,我以前没走技术路线么?
目前只能用一些现成的插件,像上面的修改代码,还不行
我也不成,都是搜索到的。这几种方法是我找到最好的方法了。
好方法呀。
WP用得少,呵呵。
换皮的时候比较麻烦
很好,,呵呵。不过我用不到。。。
呵呵,不过像描述,关键词,标题这类的东西还是了解一下的好,不管哪个网站,这些都很重要的。
技术问题,插件比较方便,呵呵。
用 Tag 与 摘要自动填写 Keywords 与 Description
这里面那一大段代码写在哪里?
Head.php 中 Title 标签的上边
柳城童鞋写过一篇很详细的~~为此,我差点就停掉这个插件了~哈哈
哈,我也从LC那里COPY了一段代码。
插件能解决的问题为何还要用复杂的方法解决呢
因为这个插件对百度不友好。如果是英文博客就无所谓了。中文就需要改。
AOS插件我启用又停用了,因为现在用的主题本身在这方面已经做的很强了;与主题整合实现功能是最好的方式,这一点万戈你们做的非常好。
全都整代码太繁琐了,如果有插件我还是蛮喜欢插件的,傻瓜式的很简单。主要是 All in One 不适合中文博客,所以才改代码的。
年前看到你BLOG用的HOSTGATOR主机,打开速度很快哈。 不过最近几天好像有点时快时慢的厄 我在上海
年前我在用BO-BLOG程序,现在我在用WP。
换成WordPress 的了啊,我进来的时候还以为自己搞错了。
哈哈....还不错。
貌似很多人都进来看一下,然后再看地址栏。
我也是用的这个方法,拒绝用插件,哈哈
知道你是代码控~
好教程
我是wp和zblog都用,前者英文博客,后者中午博客
我现在的WP也就不到10个插件,SEO完全靠代码实现
相对于SEO,我觉得内容还是比较重要。
一个月不来 你也转wp了..
Bo没有缓存插件功能啊。
我就是用的这个插件,为什么呢,因为,因为我是懒人!嘿嘿
无语了,想用就用吧。
还没用过,不知道怎么用~
纯支持下~
呃,我是不推荐用这个插件啦。
俺的是zblog的用不到!
不管什么BLOG,那也需要SEO啊。
插件能省就省!
目前我也在朝这个目标前进。
这篇文章质量好高啊!
不错!
看来Forece对WP代码内核研究得挺深了。
没有啦,我也是从网上收集来的资料后整理的。