wordpress免插件自动添加meta信息

作者:Matrix 被围观: 1,119 次 发布时间:2014-01-30 分类:wordpress建站 | 18 条评论 »

NOTICE:这是一个创建于 1045 天前的主题,其中的信息可能已经有所发展或是发生改变。

Wordpress免插件自动添加meta信息

 

汗啊,今天都除夕了。完全没感觉~

WordPress主题没弄好meta信息或者根本没有那是经常的,这代码目测很实用的。

代码:

  1. /* 
  2. 自动输出head的keywords和description信息 
  3. */  
  4. /*截取字符*/  
  5. function hhtjim_Substr($str$len = 100){//默认的100  
  6.     if(!$str){  
  7.         return;  
  8.     }  
  9.     ifstrlen$str ) <= $len ){  
  10.         return $str;  
  11.     }else{  
  12.         $ellipsis = '...';  
  13.     }  
  14.     $new_str = array();  
  15.     for($i=0;$i<$len;$i++){  
  16.         $temp_str=substr($str,0,1);  
  17.         if(ord($temp_str) > 127){  
  18.             $i++;  
  19.             if($i<$len){  
  20.                 $new_str[]=substr($str,0,3);  
  21.                 $str=substr($str,3);  
  22.             }  
  23.         }else{  
  24.             $new_str[]=substr($str,0,1);  
  25.             $str=substr($str,1);  
  26.         }  
  27.     }  
  28.     $new_str = join($new_str);  
  29.     $new_str .=$ellipsis;  
  30.     return $new_str;  
  31. }  
  32. /*去掉各类标签*/  
  33. function hhtjim_Striptags($str,$allow = ''){  
  34.     $str = str_replace(" ","",$str);//去掉空格  
  35.     $str = str_replace('"','',$str);//去掉引号 
  36.     $str = preg_replace('/(\r\n)|(\n)/', '', $str); // 消灭换行符 
  37.     $str = preg_replace('/(\t)/', '', $str); // 消灭制表符 
  38.     $str = strip_tags($str,$allow); //去掉html标签 
  39.     $str = preg_replace('/\[(.+?)\]/', '', $str); // 消灭'[]'这样的标签 
  40.     return $str; 
  41. } 
  42. function HHTjim_Keywords_Description(){ 
  43.     global $post, $wp_query; 
  44.     // 默认值 
  45. $ds = get_option('description_announce')!=="" ? get_option('description_announce') :'HHTjim在互联网的个人博客。其中有分享&记录,更有不用解释的东西 -_-!  尽情欣赏吧  ^ _ ^'; 
  46. $kw = get_option('key_announce')!=="" ? get_option('key_announce') : 'HHTjim,HHTjim.Com,部落格,个人博客,沫若中学'; 
  47.     if(is_singular()){ // 普通页面 
  48.         $keywords = array($keywords); 
  49.         $keywords[] = get_post_meta($post->ID, 'Keywords', true); 
  50.         $keywords[] = get_post_meta($post->ID, 'keywords', true); 
  51.         // 仅对 单篇文章页( single ) 处理 
  52.         if( is_single() ){ 
  53.             //获得分类名称 作为关键字 
  54.             $cats = get_the_category(); 
  55.             if($cats){ 
  56.                 foreach( $cats as $cat ){ 
  57.                     $keywords[] = $cat->name; 
  58.                 } 
  59.             } 
  60.             //获取Tags 将Tags 作为关键字 
  61.             $tags = get_the_tags(); 
  62.             if($tags){ 
  63.                 foreach( $tags as $tag ){ 
  64.                     $keywords[] = $tag->name; 
  65.                 } 
  66.             } 
  67.         } 
  68.         // 格式化处理 $keywords 
  69.         if(count($keywords) > 1){ 
  70.             array_shift($keywords); 
  71.         } 
  72.         $keywords = array_filter($keywords); 
  73.         $keywords = join(',', $keywords); 
  74.         // 对 description 的处理 
  75.         if(!empty($post->post_password)){ // 受保护的文章 
  76.             $keywords = ''; 
  77.             $description = '请输入密码查看受保护的文章'; 
  78.         }else{ 
  79.             //获取自定义域内容 
  80.              $description = mb_strimwidth(hhtjim_Striptags($post->post_content),0,117).'...'; 
  81.         //  $description = hhtjim_Striptags($post->post_content); 
  82.         //   $description = hhtjim_Substr($description); 
  83.              if( empty($description) ){ 
  84.                  $description = get_post_meta($post->ID, 'description', true); 
  85.              } 
  86.             //自定义域为空 试试Excerpt 
  87.             if( empty($description) ){ 
  88.                 $description = get_the_excerpt(); 
  89.             } 
  90.             //依然为空 则截取文章的前220个字符作为描述 
  91.             if( empty($description) ){ 
  92.                 $description = hhtjim_Striptags($post->post_content); 
  93.                 $description = hhtjim_Substr($description, 220); 
  94.             } 
  95.         } 
  96.     }elseif(is_category()){ // 分类页 
  97.         $keywords = single_cat_title('', false); 
  98.         $description = hhtjim_Striptags(category_description()); 
  99.     }elseif(is_author()){ // 作者页 
  100.         $meta_auth = get_userdata(get_query_var('author')); 
  101.         $keywords = $meta_auth->display_name; 
  102.         $description = str_replace(array('"'), '&quot;', $meta_auth->description);  
  103.         $description = hhtjim_Striptags($description);  
  104.     }elseif(is_tag()){ // 标签页  
  105.         $keywords = single_cat_title('', false);  
  106.         $description = tag_description();  
  107.         $description = hhtjim_Striptags($description);  
  108.     }elseif(is_month()){ // 月份存档页  
  109.         $description = single_month_title(' ', false);  
  110.     }  
  111.     if( !emptyempty($keywords) ){  
  112.         echo '<meta name="keywords" content="',trim($keywords),'" />',"\n";  
  113.     }else{echo '<meta name="keywords" content="',trim($kw),'" />',"\n";}  
  114.     if( !emptyempty($description) ){  
  115.     if($description == '...'){  
  116.         echo '<meta name="description" content="',trim($ds),'" />',"\n";  
  117.     }else{  
  118.         echo '<meta name="description" content="',trim($description),'" />',"\n";}  
  119.     }else{echo '<meta name="description" content="',trim($ds),'" />',"\n";}  
  120.     unset($keywords,$description);  
  121. }  
  122. add_action('wp_head', 'HHTjim_Keywords_Description',1);  

说明:

代码放到wordpress主题的?>前面。

80行的117为普通文章页面的截取字数。

此代码扒自PhilNa2主题,超级强大。自己稍微修改,完善了些。

本文固定链接:http://www.hhtjim.com/free-wordpress-plugin-automatically-add-meta-information.html
Matrix
本文章由 Matrix 于2014年01月30日发布在wordpress建站分类下,目前没有通告,你可以至底部留下评论。
转载请注明:wordpress免插件自动添加meta信息-HHTjim'S 部落格
关键字:, ,

有18 条评论 »

  1. seo培训 seo培训 2015-4-5 13:36:24 +0800#11

    哈哈 你的博客还真有的意思啊

  2. 周小姐 周小姐 2014-3-21 23:45:18 +0800#10

    有什么用呢

  3. 小清新头像吧 小清新头像吧 2014-2-9 18:57:56 +0800#9

    自动添加,这个。。

    • Matrix Matrix Moderator 2014-2-9 19:06:55 +0800

      让他自动取关键字和描述 这多爽 😛

  4. 逗妇乳 逗妇乳 2014-2-2 21:10:28 +0800#8

    博客所在服务器比较给力,直接用插件,不折腾了

    • Matrix Matrix Moderator 2014-2-2 23:39:34 +0800

      我用插件跟现在的要求一样,所以就非插件了。不过插件功能上有更多选择的

  5. arno arno 2014-2-2 14:45:06 +0800#7

    新年快乐~速度快很多

  6. 不认识 不认识 2014-2-1 22:46:31 +0800#6

    新年快乐,蛋疼实验室飘过~

  7. Youth.霖 Youth.霖 2014-2-1 6:41:39 +0800#5

    新年快乐!过年了先不折腾了

  8. 香菇肥牛 香菇肥牛 2014-1-31 20:35:44 +0800#4

    嗯,这个挺有用的,回去试试~博主新年快乐,马年吉祥!

    • Matrix Matrix Moderator 2014-1-31 21:00:44 +0800

      肥牛君 新年快乐!

  9. 手机小菜 手机小菜 2014-1-31 9:49:24 +0800#3

    对seo很有利,现在收费主题基本上都有这功能

    • Matrix Matrix Moderator 2014-1-31 13:42:28 +0800

      嗯 就是搞不懂SEO。目前没用过收费主题。 我这主题都是人家扒下来 自己捡起来用的 以前超级精简

      • 手机小菜 手机小菜 2014-1-31 15:40:25 +0800

        我也是这样,seo不懂,用的外国的免费主题,自己慢慢修改,外国主题结构和国内不太一样,又没有标注,有些功能加起来比较麻烦

  10. 小清新 小清新 2014-1-31 0:46:47 +0800#2

    新年快乐 😛

  11. 小清新头像吧 小清新头像吧 2014-1-30 14:57:56 +0800#1

    挺好的。
    博主新年快乐!!

添加新评论 »

 😛 Sad 忧伤 👿 Smile 笑脸 😳 😀 😯 😮 😕 😎 😆 😡 😈 Roll Eyes 转眼珠 😉 💡 😐 😥 Mr Green 绿脸先生

NOTICE: You should type some Chinese word (like “你好”) in your comment to pass the spam-check, thanks for your patience!