上周发了一篇《WordPress博客添加首页、文章页、页面、分类页、标签页的关键字和描述进阶版》,很多朋友留言说自己加太麻烦了,直接系统自己截取。好吧,我实在佩服大家怎么能这么懒呢?如果你确实很懒,下面我会发关键字自动用标签,描述自动截取文章开头100字的方法。如果你是搞SEO的,我还是推荐你手动加关键字和描述。
好了,大家打开上面那篇文章,第一、二步照做,第三步不同,看下面:
三、用编辑器打开header.php,在<head>
与</head>
之间任意地方(一般加到</title>下面比较美观)加上如下代码:
<?php //如果是首页 if (is_home()){ $keywords = "你网站首页的关键字,自己修改吧"; $description = "你网站首页的描述,自己修改吧"; } //如果是文章页 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); //如果为空,使用文章前100个字作为描述 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 = category_description(); } //如果是标签页,使用标签名作为关键字,标签描述作为描述 elseif (is_tag()){ $keywords = single_tag_title('', false); $description = tag_description(); } //去掉两段空格 $keywords = trim(strip_tags($keywords)); $description = trim(strip_tags($description)); ?> <meta name="keywords" content="<?php echo $keywords; ?>" /> <meta name="description" content="<?php echo $description; ?>" />
这次我把主要的注释都加上了,我想大家应该看得懂吧?
主要是文章页那里多了几个判断。默认使用文章页添加关键字,如果为空,使用标签作为关键字。默认使用文章页添加描述,如果为空,使用摘要内容,如果摘要为空,使用文章前100个字作为描述。
如果你看到了这里,那么我相信一定会有人觉得又要下载PHP文件,又要改functions.php好麻烦啊!而且也不愿意手动加这些信息,都用自动的。好吧,下面公布最懒的办法。
这个办法只需要修改一次代码,用编辑器打开header.php,在<head>
与</head>
之间任意地方(一般加到<title>下面比较美观)加上如下代码:
<?php if (is_home()){ $keywords = "你网站首页的关键字,自己修改吧"; $description = "你网站首页的描述,自己修改吧"; } elseif (is_single()){ $tags = wp_get_post_tags($post->ID); foreach ($tags as $tag){ $keywords = $keywords.$tag->name.","; } $keywords = rtrim($keywords, ', '); 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 = category_description(); } elseif (is_tag()){ $keywords = single_tag_title('', false); $description = tag_description(); } $keywords = trim(strip_tags($keywords)); $description = trim(strip_tags($description)); ?> <meta name="keywords" content="<?php echo $keywords; ?>" /> <meta name="description" content="<?php echo $description; ?>" />
OK,5个页面的关键字和描述,只要设置一次,以后全部都是自动的。刚刚准备把这个方法写成一个插件,结果看了半天插件教程,依然搞不定。希望之后能写个简单的插件,让懒人更懒一点吧。
20120701已经把后面这种懒人方法写成了一个插件,还在考虑是否集成上面的那种手动添加方法。希望大家给点意见,是全自动获取好(下面这种方法),还是可以手动添加,如果手动没有添加,就自动获取(上面那种方法)。我会参考留言意见,大概下周末发表这个插件。