无插件wordpress自动添加关键词及描述完整版,

前几天优化了一下关键词和描述的自动获取,后来觉得还是不够完整,于是动手整理了一下,大家可以参考或者直接拿去使用。

seo优化,无插件wordpress自动添加关键词及描述

使用方法简单,直接丢到主题函数文件,functions.php内即可,代码如下,自己可以适当根据要去修改。

add_action ( 'wp_head', 'wp_sheruoseo' ); // 添加关键字及描述,如觉得错乱,可以注释掉此行,添加下方一行代码到主题页头title下面。
function wp_sheruoseo(){
  global $s, $post;
    $description = '';
    $keywords = '';
if (is_home()) {
   // 将以下引号中的内容改成你的主页description
   $description = "设若、一个专注知识产权与经验分享的博客。SheRuo.com";
   // 将以下引号中的内容改成你的主页keywords
   $keywords = "sheruo,设若,设若博客,知识产权博客,商标博客,专利博客";
}
elseif (is_single()) {
   $description1 = get_post_meta($post->ID, "description", true);
   $description2 = str_replace("\n","",mb_strimwidth(strip_tags($post->post_content), 0, 200, "…", 'utf-8'));
   // 填写自定义字段description时显示自定义字段的内容,否则使用文章内容前200字作为描述
   $description = $description1 ? $description1 : $description2;
   // 填写自定义字段keywords时显示自定义字段的内容,否则使用文章tags作为关键词
   $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 .",";    
      }
	  foreach ( get_the_category ( $post->ID ) as $category )
            $keywords .= $category->cat_name . ',';
      $keywords = rtrim($keywords, ', ');	   
   }
}
elseif (is_category()) {
//定义分类添加描述和关键词
if (is_category('生活')) {
    $description = '这里填音乐分类的描述';
    $keywords = '这里填音乐分类的关键字,半角逗号隔开';
}
elseif (is_category('笔记')) {
    $description = '这里填电影分类的描述';
    $keywords = '这里填电影分类的关键字,半角逗号隔开';
}
else { // 分类的默认描述及关键词,可以到后台 - 文章 -分类目录,修改分类的描述
   $description = category_description();
   $keywords = single_cat_title('', false);}
}
elseif (is_page()){
//定义页面添加关键词和描述
   if (is_page('关于')){
   $description =  str_replace("\n","",mb_strimwidth(strip_tags($post->post_content), 0, 200, "…", 'utf-8'));
   $keywords = '这里关于页面的关键字,半角逗号隔开';
   }
   elseif (is_page('问答')) {
    $description = str_replace("\n","",mb_strimwidth(strip_tags($post->post_content), 0, 200, "…", 'utf-8'));
    $keywords = '这里填问答页面的关键字,半角逗号隔开';
	}
	else { // 默认页面的关键词描述
   $description = str_replace("\n","",mb_strimwidth(strip_tags($post->post_content), 0, 200, "…", 'utf-8'));
   $keywords = $post->post_title;
}
	}
elseif (is_tag()){
   // 标签的description可以到后台 - 文章 - 标签,修改标签的描述
   $description = tag_description();
   $keywords = single_tag_title('', false);
}
elseif (is_search()){
   // 搜索页面的description
   $description = " '" . esc_html ( $s, 1 ) . "' 的搜索結果";
   $keywords =  esc_html ( $s, 1 );
}
else {//默认页关键词设置
        $description = $blog_name . "有关 '" . trim ( wp_title ( '', false ) ) . "' 的文章";
        $keywords = trim ( wp_title ( '', false ) );
		}
$description = trim(strip_tags($description));
$keywords = trim(strip_tags($keywords));
echo '<meta name="description" content="'.$description.'" />';
echo '<meta name="keywords" content="'.$keywords.'" />';
}

我使用的时候,觉得直接插到head内有点不美观,所以稍微的进行了改动, 注释掉第一行代码,然后在主题页头模版title下面直接加入以下代码,

<?php echo wp_sheruoseo(); ?>

发表评论

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