且看之前的两篇文章,关于SEO WP博客的Description、Keywords和Title。(有什么不明白的话也可看这两篇文章,有详细的分析。)
- 分享SEO WordPress的Description 与 Keywords( http://liucheng.name/930/ )
- 分享SEO WordPress的标题Title ( http://liucheng.name/932/ )
最近又挺多童鞋过来问要关于Page页面和分类页面的Description和Keywords。研究了一下,终于通了。完整版诞生。功能可与All in One SEO 插件相媲美。这下你们是可以彻底丢掉All in One SEO 插件了。
推荐的修改方法:
在header.php,原始的title是这样的:
<title><?php wp_title('«', true, 'right'); ?> <?php bloginfo('name'); ?></title>
修改为:
<?php include_once("desc.php"); ?>
你只要把下面的代码保存在desc.php就OK了。(如果有中文的话,记得另存为文件的编码是UTF-8。切记)。把desc.php上传到你的主题的目录下。
SEO WordPress的Description、Keywords和Title(通用版)
Title是覆盖所有的页面的了。通用版的Description和Keywords就只有首页和文章页面的。
把下面的代码另存为desc.php就行了。细节问题自行改动。
<!--Title Begin, By Lc.-->
<?php if ( is_home() ) { ?><title><?php bloginfo('name'); ?> | <?php bloginfo('description'); ?></title><?php } ?>
<?php if ( is_search() ) { ?><title>搜索结果 | <?php bloginfo('name'); ?></title><?php } ?>
<?php if ( is_single() ) { ?><title><?php echo trim(wp_title('',0)); ?> | <?php bloginfo('name'); ?></title><?php } ?>
<?php if ( is_page() ) { ?><title><?php echo trim(wp_title('',0)); ?> | <?php bloginfo('name'); ?></title><?php } ?>
<?php if ( is_category() ) { ?><title><?php single_cat_title(); ?> | <?php bloginfo('name'); ?></title><?php } ?>
<?php if ( is_month() ) { ?><title><?php the_time('F'); ?> | <?php bloginfo('name'); ?></title><?php } ?>
<?php if (function_exists('is_tag')) { if ( is_tag() ) { ?><title><?php single_tag_title("", true); ?> | <?php bloginfo('name'); ?></title><?php } ?> <?php } ?>
<?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 = "我们身处急速上涨的数据海洋中…我们如何避免信息的没顶之灾呢?柳城博客(Lc.)∷关注生物信息学,分享学习Linux、PHP+Mysql、Perl/BioPerl等的心得,努力在数据的海洋里畅游。";
$keywords = "生物信息学,Perl,Bioperl,PHP,Mysql,Linux,NCBI,摄影";
}
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 & Keywords End, By Lc.-->
SEO WordPress的Description、Keywords和Title(完整版)
加入Page页面和分类页的的Description和Keywords。强大!!!!首先当然要知道各个分类页面和Page页面的ID了。
<!--###Title Begin, By Lc.###-->
<?php if ( is_home() ) { ?><title><?php bloginfo('name'); ?> | <?php bloginfo('description'); ?></title><?php } ?>
<?php if ( is_search() ) { ?><title>搜索结果 | <?php bloginfo('name'); ?></title><?php } ?>
<?php if ( is_single() ) { ?><title><?php echo trim(wp_title('',0)); ?> | <?php bloginfo('name'); ?></title><?php } ?>
<?php if ( is_page() ) { ?><title><?php echo trim(wp_title('',0)); ?> | <?php bloginfo('name'); ?></title><?php } ?>
<?php if ( is_category() ) { ?><title><?php single_cat_title(); ?> | <?php bloginfo('name'); ?></title><?php } ?>
<?php if ( is_month() ) { ?><title><?php the_time('F'); ?> | <?php bloginfo('name'); ?></title><?php } ?>
<?php if (function_exists('is_tag')) { if ( is_tag() ) { ?><title><?php single_tag_title("", true); ?> | <?php bloginfo('name'); ?></title><?php } ?> <?php } ?>
<?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 = "我们身处急速上涨的数据海洋中…我们如何避免信息的没顶之灾呢?柳城博客(Lc.)∷关注生物信息学,分享学习Linux、PHP+Mysql、Perl/BioPerl等的心得,努力在数据的海洋里畅游。";
$keywords = "生物信息学,Perl,Bioperl,PHP,Mysql,Linux,NCBI,摄影";
}
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 . ",";
}
}
###这里是分类页面。自行改变is_category的ID。###
elseif ( is_category(34) ){
$description = "生物信息学(Bioinformatics)是一门利用计算机技术研究生物系统之规律的学科。通过实例分析,介绍生物信息学的入学知识,包含生物信息学的数据库等。重点是NCBI的中文教程。";
$keywords = "生物信息学,Bioinformatics,NCBI,影响因子";
}
###这里是Page页。同上。多个页面的话自行添加就是###
elseif ( is_page(2) ){
$description = "关于柳城博客(Lc.)的介绍,联系方式,以及网站历程。柳城博客(LIUCHENG.NAME)∷努力在数据的海洋里畅游。";
$keywords = "生物信息学,Perl,Bioperl,PHP,Mysql,Linux,NCBI,摄影";
}
elseif ( is_page(135) ){
$description = "柳城博客(Lc.)的留言板。有什么问题或建议请在这里留言! 我会尽快回复~ 感谢您的支持!!";
$keywords = "柳城博客,Lc.,留言板,留言本";
}
?>
<?php echo "\n"; ?>
<meta name="description" content="<?php echo trim($description); ?>" />
<meta name="keywords" content="<?php echo rtrim($keywords,','); ?>" />
<!--###Description & Keywords End, By Lc.###-->
~完。
有点相关的文章
- 分享SEO WordPress的Description 与 Keywords (0.839)
- 分享SEO WordPress的标题Title (0.678)
- 赶紧了,抛弃 All in One SEO (0.517)
- 最近在写的一个插件:仿Discuz! Archiver (0.517)
- 301重定向及百度、Google收录分析 (0.517)
- SEO 博百优 的策略 (RANDOM - 0.017)






这到是给了我博客zblog一个思路。。
[回复]
我真的很想把松松拉到我们WP的大家族来
松松,你就从了吧 /呲牙
[回复]
又一个师太被求婚 /可爱 /可爱
[回复]
我也想拉你进来 wp 大军中来
从了吧。。。
[回复]
沙发没了。。。
[回复]
试用了没~一切正常不?
[回复]
刚吃完饭,一会试试 /呲牙
[回复]
為什么我用了之后 博客上方出現一大塊空白……奇怪……
[回复]
話說應該是這個的問題
我全部復制到header。php 完全沒有問題
但是放到desc.php再關聯到header.php就有一大塊空白
[回复]
给我看个链接。 /ok
[回复]
我剛才研究半天
全部復制到HEADER和替代DESC到HEADER的代碼沒有半點區別
為什么會有一大片空白?
[回复]
是源代码里有空白还是??
[回复]
不是 是網頁上方。就是banner上面有一大片空白 而代碼卻完全一樣
[回复]
这个嘛。不大清楚。要看个链接,具体看看。
可能是跟插件或是主题有冲突的原因~
[回复]
額 不想改了 可能是主題的沖突 我放在我另外一個站 非常正常…………
[回复]
恩。那应该是主题的冲突~~ 要看过你的主题才知道~~
这几个选项其实在搜索引擎中占得比重已经没有以前那么大了...
[回复]
呵呵。可能~~
[回复]
看看我能用否
[回复]
不能用就来报错~ /ok
[回复]
从来没有关注过这些东西呢
[回复]
强人。不需用关注~ /呲牙
[回复]
牛人啊,我在学seo呢
[回复]
一看就知道是学来赚钱~~我可比不上你的。 /偷笑
[回复]
我一直都是交给插件的,没研究seo
不过要是能减少个插件都是好事情
[回复]
Description还是挺重要的其实。因为搜索时如果Description有这个关键词的话才能搜到。当然,首先是title。
[回复]
呵呵,第一次到你的博客就感到熟悉,就是这个插件知道的你,没知道之前觉得你很神秘,现在庐山终于露出真面目了 /偷笑
[回复]
呵呵。这说明真面目本来就不咋的。 /可怜
[回复]
测试完毕,完美解决了
[回复]
/ok
[回复]
先忍着不改~~大动作慢慢折腾~
[回复]
/可爱 。蛮大的动作了,有时改了描述和关键词,title 结构等的话,搜索引擎要过几天才能反应过来的。
[回复]
嘿嘿 代码完整了
[回复]
终于完整了~~
[回复]
学习下了 ~ /呲牙
[回复]
学习了,偶用Z-BLOG
[回复]
这个介绍的很详细,先收着了
[回复]
我用 all seo 插件,怎么关键字 描述都塞不进页面,郁闷呢,不知道怎么解决
[回复]
你是指用了插件没效果?? 可能你的主题不支持吧。
[回复]
可能吧,首页就是没有效果。内页有的,琢磨不出来
[回复]
我来捧个场
[回复]
太强大了,可惜太复杂了,有点显得累赘,title就首页不同、其它输出文章标题+博客名就可以,另keyword可以不用写了,keyword已经没什么用,至于自动截取开关部分文字作description只对懒人有用,最好还是自定义一个key作description。
不过博主这篇文章还是很有参考意义,值得赞一个。
[回复]
不复杂才怪~~ 这是考虑到了所有的方方面面的.. 一网打尽了~~
要简化就自己动手删掉一些就行了.
[回复]
严重收藏下
[回复]
太感激了,终于找到了多年来没有找到的东西;了却了一大心愿啊!
====wordpress 不用插件,头部优化=====本地测试通过!
不知道该怎么感谢你啊!
先把这篇文章收藏起来,再转到我的博客上去!
[回复]
[囧]
[回复]
怎么样在文章页调用description时显示文章的前220个文字,而不是第一个里的内容啊?
[回复]
而不是第一个 P 标签里的内容
[回复]
看原来的文章有分析。。适当改变几句就行了。
[回复]
我按你的步骤完成了,但在后台哪个地方添加目录的标题,关键字和描述呢?
[回复]
哦,好热闹啊!文章页很有用!谢谢博主!
[回复]
不知道这个对最新版的2.91 是否管用呢?
[回复]
都管用的..
[回复]
http://liucheng.name/
与
http://liucheng.name/page/3/
的description是相同的.
有办法让它们不同吗?
[回复]
一时想不到.. 如果要这么办的话, 那得要多少个description啊. 不是好的办法, 一般都是屏蔽http://liucheng.name/page/3 page页的收录. 这才是正道.
[回复]
我在本地测试后,看网页源代码,只有主页标题,没有关键词和描述部分内容,请教怎么回事呢?
我用的是最新版中文wp。
谢谢!
[回复]
Description、Keywords和Title(完整版)进行修改后,主页、分类、tag页、搜索、page页都达到要求,但是single页的Description的截子有问题,只能截取文章第一行!!请问如何解决?
[回复]
有空再出详细的。
[回复]
还有个问题,要在Description出现当前id文章的tag,那么应该如何加?
[回复]
上面的代码中也有提到tag的啊。你把得出来的结果加到desc里就是了。
下面是个参考,参考哦
content="< ?php echo trim($description).rtrim($keywords,','); ?>"
[回复]
博主,你的这个方法很实用啊。谢谢了。
但还有一个小问题,就是分类页面上没有加入关键词和描述。看能否继续改进下。
再次感谢你的付出。
[回复]
没有加上Keywords 和 Description , 自己blog随意点
[回复]
正确。我现在也不喜欢改了。
[回复]
[回复]
自定义域 ~ 这个我也不知呢。
[回复]
我刚才把这关键词改成自定义域了,要是用标签的话那标签又多又乱,就失去标签应该有的作用了。
[回复]
怎么会,不要太计较就是了。 不过最近越来越发现关键词在搜索引擎中起不了什么作用。
[回复]
如果要是一直用标签做关键词的话,标签会越来越多,那样就看起来很乱了,我觉得标签应该是给访客看的,还是简洁一点好,呵呵 。
[回复]
###这里是Page页。同上。多个页面的话自行添加就是###
elseif ( is_page(2,14) ){
我要给多个页面设置同样的keywords和description,我写成(2,14)这种形式,结果只有id=2的页面正常,而id=14的不正常,请问应该如何同时写几个分类
[回复]
is_page(2) || is_page(14)
[回复]
这篇文章太棒了,我就是按照这个方法把我的哈尔滨seo进行优化,效果很好,感谢楼主
[回复]
我只能说很难.SEO....
[回复]
其他都正常,为什么就是搜索的显示乱码
页面源文件:������� | Blankcn's Blog
搜索结果这几个字显示不出?
[回复]
注意字体编码。另存为utf-8.
这问题已说了N遍
[回复]
all in one seo 非死不可吗?
我怎么用这好像没事,为什么非杀了他不可?
[回复]
其实我也不赞同杀了他的。该用就用。
[回复]
加上了,很不错 只是统计失去作用了 能解决吗
看你 用的也是1.5的统计 怎么就可以啊
谢谢 相助
[回复]
这跟统计有啥关系?~
[回复]
上面很多人反映使用后页面上方出现空白的原因:
文章页大描述标签调用的是文章的摘要,而摘要中有html代码,作者应该过滤掉这些代码,只保留文本,描述标签中式不能有html代码的
[回复]
空白只是编码问题 。应该是有过滤的吧
[回复]
description截取的第一段文字,由于中文段落的首行一般都会空2格,那样的话description描述后面也有2格空白哦。请问这个怎么解决呢?
[回复]
这东西好久没理了。加个trim函数吧
[回复]
不太会这些函数,请问具体怎么加呢?谢谢 上面的语句中php echo trim($description) 好像就是加了trim函数的吧。
[回复]
那加上就没办法了。一两个空格。这么在意干嘛。
[回复]
你好,看了你的文章受益匪浅,有一个问题想问一下,假如我不停的更新文章,那么在完整版中就要不停地增加关键词和描述,这样的话desc.php文件就会变得很大,这样的情况该去怎样解决?
[回复]
你好,看了你的文章受益匪浅,有一个问题想问一下,假如我不停的更新文章,那么在完整版中就要不停地增加关键词和描述,这样的话desc.php文件就会变得很大,这样的情况该去怎样解决?
补充一下,我说的是不同的关键词和描述。
[回复]
那是你没搞明白上面的代码吧~~
发再多的文章上面的代码也是不变的了。
[回复]
您好,使用了一段时间了感觉非常不错,但是有一个问题想请教您:
$keywords = "";
$tags = wp_get_post_tags($post->ID);
foreach ($tags as $tag ) {
$keywords = $keywords . $tag->name . ",";
这一段的意思应该是将tag标签设置为keywords,但是假如我不希望使用tag作为关键词,想使用自定义域的方式该怎样实现?
在载入之前,我使用
<meta name=”keywords” content=”ID, $key, true); ?>” />是可以自定义域的,但是现在好像没有作用了,请问您一下,像这样的情况如何去解决?诚盼您的答复!
[回复]
您好,使用了一段时间了感觉非常不错,但是有一个问题想请教您:
$keywords = "";
$tags = wp_get_post_tags($post->ID);
foreach ($tags as $tag ) {
$keywords = $keywords . $tag->name . ",";
这一段的意思应该是将tag标签设置为keywords,但是假如我不希望使用tag作为关键词,想使用自定义域的方式该怎样实现?
在载入之前,我使用
” />是可以自定义域的,但是现在好像没有作用了,请问您一下,像这样的情况如何去解决?诚盼您的答复!
[回复]
非常感谢,已经成功嘎嘎
[回复]
哇,貌似楼猪很强大呢,捏一下
[回复]
博主,能不能教教我,如何去掉自动添加tags为keywords。因为用自定义字段解决keywords更加适合我。但是这个描述还是很适合我的,所以只是去掉keywords这一段,谢谢啦!!!!
[回复]
后台关闭啊
[回复]
按此法优化了,这样就把一些插件省掉了!
[回复]