wordpress SEO之自定义meta信息
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,这就看你的选择了。