我爱水煮鱼 » 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 条评论 添加你的评论 →

  • Crazy Loong 2008-11-16 23:27:17 #

    传说中的日经

    支持 反对

  • feicun 2008-11-16 23:30:05 #

    支持日经……

    支持 反对

  • Kenny 2008-11-16 23:32:18 #
    :smile: 学习了

    支持 反对

  • mg12 2008-11-16 23:41:33 #

    好! 我的主题已经集成这个了.
    但为什么是 220 呢? :mrgreen: <- 我是个好学之人.

    支持 反对

  • 火星人 2008-11-17 00:08:18 #

    恩,虽然代码很简单,但是还是很实用的。虽然keywords被削弱了,但是优化一下总比不优化好。评论完毕。

    支持 反对

  • 老所 2008-11-17 00:23:54 #

    好文!有用!

    支持 反对

  • 雀巢 2008-11-17 00:24:14 #

    不错,用上了

    支持 反对

  • fengfree 2008-11-17 08:51:57 #
    :mrgreen:

    支持 反对

  • Rey 2008-11-17 09:51:19 #

    请问,放在header中的什么位置呀。。。

    支持 反对

  • 老孔 2008-11-17 10:14:18 #

    偶用插件。。

    支持 反对

  • 流星 2008-11-17 11:48:20 #

    我的header.php里面只找到这句,连keywords都没……咋添加呢?

    支持 反对

  • Zoll 2008-11-17 12:33:51 #

    我也在找这些。。 :mrgreen:

    支持 反对

  • Dianso 2008-11-17 12:56:55 #

    我也去加上了 :razz: :razz: :razz:

    支持 反对

  • stephen 2008-11-17 12:58:14 #

    谢谢分享,早就想截取文章作为Description了,但一直苦于找不到方法。。

    支持 反对

  • Dianso 2008-11-17 13:05:37 #

    还有个问题问一下啊

    keywords中的tag分开时候逗号是’,'还是’,’

    用哪个? :oops:

    支持1 反对

  • Dianso 2008-11-17 13:13:30 #

    发现keywords最后一个标签后面还有 ,
    不知道怎么回事

    支持 反对

    • Denis 2008-11-17 16:26:14 #

      可以通过下面的语句去掉最后的 ,

      $keywords = substr($keywords,0,-2);

      支持 反对

  • charleslee 2008-11-17 17:34:00 #

    我想问一下$post是事先在哪定义的

    支持 反对

  • xaoma 2008-11-17 18:40:55 #

    用上了!

    支持 反对

  • sarahice 2008-11-20 11:05:01 #

    按照你说的,优化了一下!

    支持 反对

  • xiaorsz 2008-11-21 16:26:24 #

    为什么我添上后,当它自己截取字时会在末尾出现了一个乱码!!

    支持 反对

    • Denis 2008-11-27 19:41:34 #

      这个可能需要加上一个叫做 utf8-trim 的函数。google 下!

      支持 反对

      • 万亮 2009-01-02 18:01:59 #

        我找了半天看到了这个函数,可是不知如何添加进去,能帮我看看吗?我的网站目前正在使用这段代码,方便的话给我发个E-mail吧,多谢!

        支持 反对

      • Leeiio 2009-01-22 17:11:47 #

        google了下不會用。。可否指教下~謝謝

        支持 反对

        • Denis 2009-01-22 18:00:58 #

          添加如下函数:

          function utf8_trim($str) {

          $len = strlen($str);
          $hex = ”;

          for ($i=strlen($str)-1; $i>=0; $i-=1){
          $hex .= ‘ ‘.ord($str[$i]);
          $ch = ord($str[$i]);
          if (($ch & 128)==0) return(substr($str,0,$i));
          if (($ch & 192)==192) return(substr($str,0,$i));
          }
          return($str.$hex);
          }

          然后吧
          $description = substr(strip_tags($post->post_content),0,220);

          改成:
          $description = utf8_trim(substr(strip_tags($post->post_content),0,220));

          支持 反对

          • Leeiio 2009-01-22 18:14:14 #

            感謝,我用mb_strimwidth函數替換了substr函數發現也可以用哈~

            支持 反对

          • Paul 2009-04-28 17:32:14 #

            请问:
            function utf8_trim($str) {

            $len = strlen($str);
            $hex = ”;

            for ($i=strlen($str)-1; $i>=0; $i-=1){
            $hex .= ‘ ‘.ord($str[$i]);
            $ch = ord($str[$i]);
            if (($ch & 128)==0) return(substr($str,0,$i));
            if (($ch & 192)==192) return(substr($str,0,$i));
            }
            return($str.$hex);
            }
            应该加在什么位置?我不是程序员,请指教。

            支持 反对

  • lixiaolong 2008-11-25 18:44:07 #

    请问$keywords = substr($keywords,0,-2);加在哪里

    支持 反对

  • 周公解梦 2008-11-28 16:19:23 #

    你的博客不能复制东西很不适合,自己打吧还打不出来,郁闷啊。很喜欢这篇文章 :razz:

    支持 反对

  • lixiaolong 2008-11-28 22:31:09 #

    很感谢 雪山飞猪 教了我那么多
    不过我还是有几点疑问
    1.关键词的逗号后面会有个空格,刚开始我以为是 $keywords = $keywords . $tag->name . “, “; 逗号后面有个空格的关系,就改了一下,结果前面的正确,可最后一个字变成乱码。
    2.在标签和分类页面时,要怎么做?

    支持 反对

  • cuikai 2008-12-11 10:57:23 #

    出本书吧, 每天上网一点一点看很辛苦的……

    支持 反对

    • 笑林广记 2008-12-19 11:52:02 #

      感谢雪山飞猪提供此方法,不过经测试还有几个地方不是那么完善
      第一处:如果文章前220字符有换行那么description中也会换行。加上以下代码就OK了
      $description = str_replace(array(“\r\n”, “\r”, “\n”, ” “), ” “, $description);
      $description = str_replace(array(“\”"), “”, $description);
      第二处是上面20楼提到的问题,如果关键词是中文的话按照你提供的方法处理的话会把所有的逗号都去掉了,造成所有关键词连在一起了,英文关键词貌似没有问题。
      还没找到解决办法
      供参考….

      支持 反对

      • wuai 2009-04-06 16:58:09 #

        $description = str_replace(array(”\r\n”, “\r”, “\n”, ” “), ” “, $description);
        $description = str_replace(array(”\””), “”, $description);
        ————————————
        上段具体应摆在下方这一段的哪一行后面?
        ————————————————–
        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=”" />
        <meta name=”description” content=”" />
        ——————————-
        试了好多次,总是出错,可能插错了位置。
        另外,主页选择静态页面的某个页面时,好像无法看到主页的描述与关键词,有无解决办法?

        先谢!

        支持 反对

  • 笑林广记 2008-12-19 11:58:27 #

    昏,搞定了
    $keywords = substr($keywords,0,-1);应该加在foreach ($tags as $tag ) { } 外面
    我自己真弱智,汗一个

    支持 反对

发表评论

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

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

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