我爱水煮鱼 » WordPress » 我是如何 SEO WordPress 的 2:Description 和 Keywords

我是如何 SEO WordPress 的 2:Description 和 Keywords

Description 和 Keywords 的重要性已经不像以前那么重要了,但是设置正确的 Description 和 Keywords 还是对你的排名有利。

WordPress 在撰写日志的时候,可以给日志添加摘要(excerpt)和标签(tag),我的做法就是,就如给日志添加了摘要就把摘要做为 Description,如果没有设置摘要的话,则截取文章的前 220 个字作为 Description,而标签直接作为 Keywords。代码如下:

<?if (is_home()){
    $description = "我爱水煮鱼是一个关注 WordPress 开源博客平台应用和互联网的 IT 博客。";
    $keywords = "WordPress, 博客, 互联网, 主题, 插件";
} elseif (is_single()){
    if ($post->post_excerpt) {
        $description     = $post->post_excerpt;
    } else {
        $description = substr(strip_tags($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?>" />

上面代码请放到 header.php 相应的位置,同样我也只优化了首页和日志页面。

标签:

分享到:

64 条评论 添加你的评论 →

  • Metoit 2009-02-08 01:55:47 #

    使用all in one seo pack了.懒得动手了 :oops:

    支持 反对

  • zhukun 2009-03-06 20:35:20 #

    很好很强大,我也可以抛弃All in One SEO Pack了! :smile:

    支持 反对

  • lunweninfo 2009-03-15 14:13:25 #

    关键词的逗号后面会有个空格,刚开始我以为是 $keywords = $keywords . $tag->name . “, “; 逗号后面有个空格的关系,就改了一下,结果导致全部出现乱码,请问怎样能解决这问题呢?

    支持 反对

  • jazzi 2009-05-22 10:30:55 #

    和#46楼的同样的问题,

    要解决前220字符换行的问题,#45楼笑林广记的代码应该放到哪个地方?

    $description = str_replace(array(”\r\n”, “\r”, “\n”, ” “), ” “, $description);
    $description = str_replace(array(”\””), “”, $description);

    支持 反对

  • zouhu8 2009-06-08 15:19:58 #

    看到楼上的问题没人回答,我就把我自己的沾上来吧
    $dn=$description = utf8_trim(substr(strip_tags($post->post_content),0,220));
    $dn = str_replace(array(“\r\n”,”\r”,”\n”,”\”",” “),”",$dn);
    详见:我的博客simplc.cn中:让你丢掉all in one seo pack方法

    支持 反对

    • zouhu8 2009-06-08 15:21:12 #

      由于编辑器原因 请使用代码的时候注意把“符号的全角改为半角

      支持 反对

  • Blinux 2009-08-09 09:26:28 #

    现在侧边栏可以通过wp kit cn来实现了
    http://www.blinux.cn/wp-kit-cn/ :mrgreen:

    支持1 反对

  • 御用软件 2009-11-07 15:08:35 #

    恩,不错,按你的方法优化了下,谢谢了……
    可到这里查看效果 :smile: http://yyrj.org

    支持1 反对

  • tooko 2010-02-27 13:32:19 #

    逗号用什么,中文的逗号还是用英文的逗号?

    支持 反对3

  • oceanthink 2010-03-25 10:40:13 #

    很好很强大,特来感谢,在你博客中看到很多我想去用代码实现可是还没有思路的东西,太喜欢了。

    支持 反对

  • 鱼逸涵 2010-12-01 22:38:06 #

    哈哈,赶紧用上。 :razz:

    支持 反对

  • simonds 2011-03-25 10:18:20 #

    第二步照做了。

    支持 反对

  • leonluo 2011-10-08 03:16:09 #

    已经使用这个方法,主页和文章页都很好,
    但请问:如何把page页面的
    <meta name="keywords" content="” />
    <meta name="description" content="” />
    去掉呢?
    谢谢了

    支持 反对

    • Denis 2011-10-08 13:54:29 #

      <meta name=”keywords” content=”” />
      <meta name=”description” content=”” />

      这个放到下面的 判断里面

      if(is_home()) || is_single()){

      }

      支持 反对

  • yanjie 2011-10-11 22:50:01 #

    $post->post_excerpt;
    显然这段代码是放在the loop之前的,我从网上查到的资料来看,$post标签是在the_post()被调用之后才赋值的,显然,这里把代码放在header.php中,也就肯定是在the loop之外,所以,如果按照“官方”的说法,这样调用$post是没有值的,或者是上一次the_post的错误的值,不是当前页面的值。
    而实践得知,$post确实是当前页面的值。这样就和网上的说法矛盾了。
    求解释!

    支持 反对

    • Denis 2011-10-12 00:28:49 #

      debug 下 WP,init 时候会 get_posts。所有就有全局变量 $posts 和 $post!

      支持 反对

发表评论

你必须 登陆 之后才能留言。你可以使用以下方式快速登陆我爱水煮鱼:

使用新浪微博登陆 使用腾讯微博登陆 使用豆瓣登陆

你也可选择直接在本站 注册