关于 #WordPress# 的 keywords 和 description SEO 技巧

关于 #WordPress# 的 keywords 和 description SEO 技巧网络上介绍很多,但是总是有这样那样的不足。网站的 keywords 及网页 description 关系网站对搜索引擎的友好程度,如果自己手动加显然太折腾了,那如何让 wordpress 博客自动为每篇文章、页面、分类、标签、搜索结果等等都可以自动加上 keywords 及网页 description 呢?。我想这更是大家希望得到的答案。现给大家两个方案:一、修改header.php;二、在functions.php增加代码;

先给大家看看本人博客的效果:

\"SEO.01\"

这是首页的keywords 和 description显示

\"SEO.02\"

这是分类的keywords 和 description显示

\"SEO.03\"

这是TAG标签的keywords 和 description显示

\"SEO.04\"

这是搜索结果页面的keywords 和 description显示 可以说已覆盖所有页面。可以说是一个比较齐全的优化实现。

具体方法如下。 一、方法一,在header.php合适位置添加以下代码。

<?php
//如果是首页
if (is_home()){
    $description = \"HST网络站--关注互联网、IT科技、智能手机、电子商务、网络营销等内容的个人博客!\";
    $keywords = \"Android,WordPress,黑莓,安卓,互联网,创业,销售,摄影,时尚,艺术,程序,生活\";
}
//如果是文章页
elseif (is_single()){
    //默认使用文章页添加关键字
    $keywords = get_post_meta($post->ID, \"keywords\", true);
    //如果为空,使用标签作为关键字
    if($keywords == \"\"){
        $tags = wp_get_post_tags($post->ID);
        foreach ($tags as $tag){
            $keywords = $keywords.$tag->name.\",\";
        }
        //去掉最后一个,
        $keywords = rtrim($keywords, \', \');
    }
    //默认使用文章页添加描述
    $description = get_post_meta($post->ID, \"description\", true);
    //如果为空,使用文章前200个字作为描述
    if($description == \"\"){
        if($post->post_excerpt){
            $description = $post->post_excerpt;
        }else{
            $description = mb_strimwidth(strip_tags(apply_filters(\'the_content\',$post->post_content)),0,200);
        }
    }
}
//如果是页面,使用页面添加的关键字和描述
elseif (is_page()){
    $keywords = get_post_meta($post->ID, \"keywords\", true);
    $description = get_post_meta($post->ID, \"description\", true);
}
//如果是分类页,使用分类名作为关键字,分类描述作为描述
elseif (is_category()){
    $keywords = single_cat_title(\'\', false);
    $description = $blog_name . \"有关 \'\" . single_cat_title ( \'\', false ) . \"\' 的文章\";
}
//如果是标签页,使用标签名作为关键字,标签描述作为描述
elseif (is_tag()){
    $keywords = single_tag_title(\'\', false);
    $description = $blog_name . \"有关 \'\" . single_tag_title ( \'\', false ) . \"\' 的文章\";
}
//如果是搜索页,使用搜索词为关键字,搜索词描述做为描述
else if ( is_search() ) {
    $keywords = esc_html ( $s, 1 );
    $description = $blog_name . \"\'\" . esc_html ( $s, 1 ) . \"\' 的搜索結果\";
}
//去掉两段空格
$keywords = trim(strip_tags($keywords));
$description = trim(strip_tags($description));
?>
\" />
\" />

二、方法二,在你主题的functions.php文件添加以下代码,各个代码的功能解析如下,此方法不需要修改任何header.php的代码:

add_action ( \'wp_head\', \'wp_keywords\' ); // 添加关键字
add_action ( \'wp_head\', \'wp_description\' ); // 添加页面描述


    /**
 +----------------------------------------------------------
 * 站点关键字(hst.liuyuxuan.com)
 +----------------------------------------------------------
 * @huangjinbo
 +----------------------------------------------------------
 */
function wp_keywords() {
    global $s, $post;
    $keywords = \'\';
    if (is_single ()) {  //如果是文章页,关键词则是:标签+分类ID
        if (get_the_tags ( $post->ID )) {
            foreach ( get_the_tags ( $post->ID ) as $tag )
                $keywords .= $tag->name . \', \';
        }
        foreach ( get_the_category ( $post->ID ) as $category )
            $keywords .= $category->cat_name . \', \';
        $keywords = substr_replace ( $keywords, \'\', - 2 );
    } elseif (is_home ()) {
        $keywords = \'我是主页关键词\';  //主页关键词设置
    } elseif (is_tag ()) {  //标签页关键词设置
        $keywords = single_tag_title ( \'\', false );
    } elseif (is_category ()) {//分类页关键词设置
        $keywords = single_cat_title ( \'\', false );
    } elseif (is_search ()) {//搜索页关键词设置
        $keywords = esc_html ( $s, 1 );
    } else {//默认页关键词设置
        $keywords = trim ( wp_title ( \'\', false ) );
    }
    if ($keywords) {  //输出关键词
        echo \"&lt;meta name=\"keywords\" content=\"$keywords\" />n\";
    }
}


/**
 +----------------------------------------------------------
 * 站点描述
 +----------------------------------------------------------
 * @huangjinbo
 +----------------------------------------------------------
 */
function wp_description() {
    global $s, $post;
    $description = \'\';
    $blog_name = get_bloginfo ( \'name\' );
    if (is_singular ()) {  //文章页如果存在描述字段,则显示描述,否则截取文章内容
        if (! empty ( $post->post_excerpt )) {
            $text = $post->post_excerpt;
        } else {
            $text = $post->post_content;
        }
        $description = trim ( str_replace ( array (
                \"rn\",
                \"r\",
                \"n\",
                \" \",
                \" \" 
        ), \" \", str_replace ( \"\"\", \"\'\", strip_tags ( $text ) ) ) );
        if (! ($description))
            $description = $blog_name . \"-\" . trim ( wp_title ( \'\', false ) );
    } elseif (is_home ()) {//首页显示描述设置
        $description = $blog_name . \"-\" . get_bloginfo ( \'description\' ) .\'首页要显示的描述\'; // 首頁要自己加
    } elseif (is_tag ()) {//标签页显示描述设置
        $description = $blog_name . \"有关 \'\" . single_tag_title ( \'\', false ) . \"\' 的文章\";
    } elseif (is_category ()) {//分类页显示描述设置
        $description = $blog_name . \"有关 \'\" . single_cat_title ( \'\', false ) . \"\' 的文章\";
    } elseif (is_archive ()) {//文档页显示描述设置
        $description = $blog_name . \"在: \'\" . trim ( wp_title ( \'\', false ) ) . \"\' 的文章\";
    } elseif (is_search ()) {//搜索页显示描述设置
        $description = $blog_name . \": \'\" . esc_html ( $s, 1 ) . \"\' 的搜索結果\";
    } else {//默认其他页显示描述设置
        $description = $blog_name . \"有关 \'\" . trim ( wp_title ( \'\', false ) ) . \"\' 的文章\";
    }
    //输出描述
    $description = mb_substr ( $description, 0, 220, \'utf-8\' ) . \'..\';
    echo \"&lt;meta name=\"description\" content=\"$description\" />n\";
}

简单吧,不需要再为keywords 和 description 设置而烦恼了。但最好的SEO还是写优质的文章,这个是永恒不变的正道。

34 thoughts on “关于 #WordPress# 的 keywords 和 description SEO 技巧

    1. 佐仔 文章作者

      确实如此,所以在本文最终也说了一句:最好的SEO还是写优质的文章,这个是永恒不变的正道。
      在别的博客看到你的留言,刚想起坛子兄时右下角就弹出一个邮件提醒:你留言了。呵呵。

      回复
            1. 佐仔 文章作者

              谢谢。这个还真的没有注意,现设置了,把“须经由管理员审核”钩去掉。
              原先把“评论者先前须有评论通过了审核”和”须经由管理员审核”一起钩了。
              现在应该可以了。

    1. 佐仔 文章作者

      如果不选 经由管理员审核,那你现在留言我没有收到邮件提醒了。必须是你回我原先的留言我才会有提醒。

      回复
  1. 土木坛子

    我的方法是,用akismet过滤垃圾邮件,评论者必须要填写邮箱和昵称,这样在用户体验和博客主人工审核之间做到一个平衡,垃圾评论太多了,你不可能人工审核得过来,而用户,即使是第一次评论,我认为让人家要等待一段时间才能看到自己的评论内容,这种体验不是最好的。

    回复
    1. 佐仔 文章作者

      其实我更多的是想马上看到大家的留言,然后第一时间回复。刚才你的几条留言我均没有邮件提醒。不知我现在给你的留言你是否收到邮件提醒?

      回复
      1. 土木坛子

        留言你不必第一时间知道的呀,那如果留言一多,你每天就只能看最新留言了。我的原则是,任何人回复我的留言时,我会收到邮件提醒,而如果只是留言的话,不会有邮件提醒,要后台查看。你实在要想推荐一款小软件:WP-NOTIFIER, 官方提到的软件,不会有问题,你安装一下吧。而任何人的留言得到回复时,TA都会收到邮件提醒——这就是我强制留言者必须要留邮箱的原因。

        回复
        1. 佐仔 文章作者

          回头看看。因为新留言不及时回复觉得让大家久等,呵呵。不过你这个说法也是真确的,试用一段时间,而留言提醒用手机客户端接收。

          但有个问题就是你刚才回复我的留言我也没有收到邮件提醒。可能是“Comment Reply Notification”问题,已改为:“任何人回复都发送 ”。帮忙试试回复本留言看看,谢谢。

          回复
        1. 佐仔 文章作者

          当初是因为垃圾文件太多,所以才这样设置的。后来因为留言不多就一直保持这种方式。
          任何人发表评论都会收到通知我是用:“Comment Reply Notification”来实现的,非常功能的插件,勺子介绍的,呵呵。

          回复
    1. 佐仔 文章作者

      我安装的插件不多,具体如下:Add Post URL、Akismet、Baidu Sitemap Generator、Comment Reply Notification、DX-auto-save-images、DX-Watermark、Google XML Sitemaps、Slimbox、WP-DBManager、WP-EasyArchives、WP SyntaxHighlighter。

      关于自动草稿问题,月光博客曾写过一篇文章,可以参考一下:http://www.williamlong.info/archives/2301.html

      回复
            1. 佐仔 文章作者

              不求完美了,因为现在keywords和descriptio在SEO重要性不大了。我现在的主题已经放弃keywords和descriptio功能。

  2. 林木木

    何时发送电子邮件:有人发表评论时 ,有评论等待审核时。两个勾了就OK啦?
    评论审核“评论者先前须有评论通过了审核”,关键是启用 ajax 评论提交,然后就可以把wp根目录的哪个 comment 给删了!

    回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注