闻心阁

一蓑烟雨看苍生,半壶浊酒笑红尘

wordpress SEO之自定义meta信息

2012-03-02 约 1 分钟读完 搬砖秘籍

wordpress中SEO是一个永恒不变的话题,尽管现如今meta信息已经不被搜索引擎那么看重,但是良好的meta信息还是有利于SEO的。所以趁着这次写主题的机会就直接把这个功能集成到我的wordpress主题LabQ中。

这篇文章的来自万戈的博客,其实原理就是先判断访问的页面,如果是首页,就是你自定义的meta信息,否则就以一篇文章的标签(tag)作为文章的keywords,以文章前多少个字作为描述description,这样一来就可以为每一篇文章添加相关的meta信息。

首先看万戈的代码

<?if (is_home()){
    $keywords = "Life Studio,万戈,Wordpress";
    $description = "My Life, My Studio...";
} 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 . ", ";
    }
}
?>

当然如果仅仅是copy别人的代码这篇文章就没有多少意义了,在我写主题的时候用上述的代码出现了很严重的问题,IE6不兼容!

这个问题的确让我郁闷了好久,IE6只能开首页和部分文章页,到了一些文章页面竟然无法加载style.css!苍天,后来启用了IEtester和一个debuger插件,一行一行html对比,最终发现问题,下面是我的解决方案。

php代码如下:

<?php if (is_home()){
    $keywords = "LabQ,YQC网络实验室,程序设计,开源,web";
    $description = "记录我折腾网络的点点滴滴,这里是我的实验室";
} 
elseif (is_single()){
	$description = "";
    if ($post->post_excerpt) {
        $description = $post->post_excerpt;
    } else {
        $description = mb_substr(strip_tags($post->post_content),0,180,'utf-8');
    }
    $keywords = "";      
    $tags = wp_get_post_tags($post->ID);
    foreach ($tags as $tag ) {
        $keywords = $keywords . $tag->name . ", ";
    }
}
?>

通过上面的代码成功解决IE6不兼容的问题,尽管我不知道自己的解决方案是不是最好,但是通过上面的方法的确解决了我的问题。

最后说明使用方法:将上面的代码拷贝到header.php中之前,至于选用那种方法来解决你的wordpress meta,这就看你的选择了。