ALL IN ONE SEO插件其实我没怎么用过,一是本身是我个人对博客的seo不大重视,有装没装那插件也没觉得有什么特别的效果;二来弄着一个不痛不痒的插件在那时不时要跟着升级,又怕插件冲突,所以没用多久干脆就被我给删除了,可是如果按wordpress默认的效果,meta又会有残缺,不符合html标准。后来在header文件里用了一段代码来替换,这是后话。
刚才,就刚刚,在wpg论坛看到了一帖子,原来all in one插件还有这么多的用途,另外介绍了一种比我的复杂又简单的代码来替换这个插件。说它复杂是说它的代码比我多,功能也更全面点;说简单呢,是因为它的代码是放在function.php文件中,而不是我那个直接放在header文件中,看起来header文件就干净多了。
下面顺便说说我不知道的all in one seo插件的功能:
ALL IN ONE SEO PACK可以:
1、可以给每篇文章添加独立的关键词;
2、可以给每篇文章添加独立的meta标签;
3、可以给每篇文章添加独立的description;
4、可以给每篇文章添加独立的摘要;
5、可以给每篇文章自动生成摘要;
6、可以防止存档页和首页的内容被抓取,从而防止因重复内容被google降权;
这个是发在wpg上的替换插件的代码,注意:在复制代码前要确保您主题文件中的header.php文件,在《/head》之前要注意有如下代码:
<?php wp_head(); ?>
打开您主题文件中的 functions.php 文件,在文件尾部的 ?> 之前加上如下代码:
// get categories name function get_cats_name() { $allcats=get_categories(); foreach ($allcats as $category) { $keywords[] = $category->cat_name; } return $keywords; } // utf8 substr function utf8Substr($str, $from, $len) { return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'. '((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s', '$1',$str); } // Meta SEO function meta_SEO() { global $post; $output = ''; if (is_single()){//如果是文章页 $keywords = ''; $description = ''; if ($post->post_excerpt) {//如果文章摘要存在就以文章摘要为描述 $description = $post->post_excerpt; $description = str_replace("\r\n","",$description); $description = str_replace("\n","",$description); $description = str_replace("\"","'",$description); $description .= '...'; } else {//如果文章摘要不存在就截断文章前200字为描述 $description = utf8Substr(strip_tags($post->post_content),0,200); $description = str_replace("\r\n","",$description); $description = str_replace("\n","",$description); $description = str_replace("\"","'",$description); $description .= '...'; } $tags = wp_get_post_tags($post->ID);//取文章标签 foreach ($tags as $tag ) { $keywordarray[] = $tag->name; } //以文章标签为关键字 $keywords = implode(',',array_unique((array)$keywordarray)); } else {//如果不是文章页 $keywords = ''; //在引号间写入你博客的关键字用,断开 $description = '';//在引号间写入你博客的简单描述,不要过200字 if ($keywords == '') {//如果没写博客的关键字则以分类名为值 $keywords = implode(',',array_unique((array)get_cats_name())); } if ($description == '') {//如果没写博客的描述则以副标题为值 $description = get_option('blogdescription'); } } //输出描述 $output .= '<meta name="description" content="' . $description . '" />' . "\n"; //输出关键字 $output .= '<meta name="keywords" content="' . $keywords . '" />' . "\n"; if (is_single() OR is_page() OR is_home()) ://如果是文章、分页、首页则允许robots $output .='<meta name="robots" content="index,follow,noarchive" />'; else ://如果不是则不允许 $output .='<meta name="robots" content="noindex,follow,noarchive" />'; endif; $output .= "\n"; $output .='<meta name="googlebot" content="noarchive" />'; echo "$output\n"; } add_action('wp_head', 'meta_SEO');//添加meta_SEO函数到头部信息里
另外,同时也介绍一下我用的方法,其实和上面的差不多,只要用下面的代码替换掉你header.php文件中title和meta相关的部分内容就ok了:
<title><?php if (is_single() || is_page() || is_archive()) { ?><?php wp_title('',true); ?> - <?php } bloginfo('name'); ?> - <?php bloginfo('description'); ?></title> <?php if (is_single() || is_page() || is_home() || is_category() ) : ?> <meta name="robots" content="index,follow" /><?php else : ?> <meta name="robots" content="noindex,follow" /><?php endif; ?> <?php if (is_home()) { $description = '';//在引号间写入你博客的简单描述,不要过200字 $keywords = '';//在引号间写入你博客的关键字用,断开 } else if (is_single()) { $description = $post->post_title; $keywords = ""; $tags = wp_get_post_tags($post->ID); foreach ($tags as $tag ) { $keywords = $keywords . $tag->name . ", "; } } else if (is_category()) { $description = category_description(); } ?> <meta name="keywords" content="<?=$keywords?>" /> <meta name="description" content="<?=$description?>" /> <meta http-equiv="Content-Type" content="<?php bloginfo('charset'); ?>" /> <meta name="generator" content="WordPress <?php bloginfo('version'); ?>" />
部分内容出自:http://wpg.im/bbs/thread-675-1-1.html
恩恩 不用插件最好....
听说你在研究js?到时候教教我啊,我也一直想学学,一直想着。
学习了!
太深奥了
太深奥了?
你的com.cn终于换了啊!还是国外的安全!
换了快一个月了。
斜坡也去WPG混了
跟着大伙去看看的,不好混啊
哈,我已经这么干了
我想想还是不换了,懒的换,效果也不是差很大。