WordPress针对360智能摘要、百度星火计划目录分类显示不同效果,并显示附件大小


功能:实现WordPress针对360智能摘要、百度星火计划目录分类显示不同效果,比如软件下载页面显示软件下载类智能摘要,文章类显示文章的智能摘要,并可以显示非图片(应用类)附件大小。

在主题下functions.php中填写以下代码即可,效果如下图所示:

zhaiyaojietu

  1. /**
  2. * WordPress针对360搜索智能摘要的优化措施
  3. * 百度星火、360搜索智能摘要同时满足版
  4. * www.soguifan.com
  5. */
  6. add_action('wp_head', 'starfire',0);
  7. if(!function_exists('starfire')){
  8.   function starfire(){
  9.     //新增判断,如果是原创文章才加入星火计划META申明
  10.     $copy = get_post_meta($post->ID, 'author', true);
  11.     if (is_single()) {
  12.         date_default_timezone_set('PRC');
  13.     //360智能摘要,百度星火计划
  14.     //如果页面为soft软件下载类
  15.     if (in_category(array('win-do','win','components'))){
  16.         echo '<meta property="og:type" content="soft"/>';
  17.         echo '<meta property="og:description" content="'.get_mypost_excerpt($post->ID, 220).'……" />';
  18.         echo '<meta property="og:soft:file_size" content="'.wpatt_filsize().'"/>';
  19.         echo '<meta property="og:soft:operating_system" content="Winxp/vista/win7/win8/2000/2003"/>';
  20.         echo '<meta property="og:image" content="'.get_mypost_thumbnail($post->ID).'" />';
  21.         echo '<meta property="og:release_date" content="'.get_the_date('c').'"/>';
  22.         echo '<meta property="og:title" content="';
  23.         single_post_title();
  24.         echo '_';
  25.         bloginfo('name'); 
  26.         echo '" />';
  27.         echo '<meta property="og:soft:language" content="简体中文"/>';
  28.         echo '<meta property="og:soft:license" content="免费软件"/>';
  29.     echo '<meta property="og:soft:url" content="'.get_permalink().'"/>';}
  30. else if (in_category(array('mob-do','app'))){
  31.         echo '<meta property="og:type" content="soft"/>';
  32.         echo '<meta property="og:description" content="'.get_mypost_excerpt($post->ID, 220).'……" />';
  33.         echo '<meta property="og:soft:file_size" content="'.wpatt_filsize().'"/>';
  34.         echo '<meta property="og:soft:operating_system" content="Android/IOS"/>';
  35.         echo '<meta property="og:image" content="'.get_mypost_thumbnail($post->ID).'" />';
  36.         echo '<meta property="og:release_date" content="'.get_the_date('c').'"/>';
  37.         echo '<meta property="og:title" content="';
  38.         single_post_title();
  39.         echo '_';
  40.         bloginfo('name'); 
  41.         echo '" />';
  42.         echo '<meta property="og:soft:language" content="简体中文"/>';
  43.         echo '<meta property="og:soft:license" content="免费软件"/>';
  44.     echo '<meta property="og:soft:url" content="'.get_permalink().'"/>';}
  45.     //如果页面为article文章类
  46. else{
  47.         echo '<meta property="og:type" content="article"/>';
  48.         echo '<meta property="og:image" content="'.get_mypost_thumbnail($post->ID).'" />';
  49.         echo '<meta property="og:release_date" content="'.get_the_date('c').'"/>';
  50.         echo '<meta property="article:published_time" content="'.get_the_date('c').'"/>';
  51.         echo '<meta property="og:title" content="';
  52.         single_post_title();
  53.         echo '_';
  54.         bloginfo('name'); 
  55.         echo '" />';
  56.         echo '<meta property="og:description" content="'.get_mypost_excerpt($post->ID, 220).'……" />';
  57.         echo '<meta property="article:author" content="';
  58.         bloginfo('name');
  59.         echo '" />';
  60.         echo '<meta property="article:published_first" content="';
  61.         bloginfo('name');
  62.         echo ',';
  63.         the_permalink();
  64.         echo '" />';
  65.        }
  66.     }
  67.     }
  68.   }
  69. /**
  70. * WordPress 获取文章摘要整理版
  71. */
  72. function get_mypost_excerpt($post_ID,$len){
  73.     if (!function_exists('utf8Substr')) {
  74.         function utf8Substr($str$from$len) {
  75.             return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.
  76.                 '((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s',
  77.                 '$1',$str);
  78.         }
  79.     }
  80.     if(!$post_content){
  81.             $post = get_post($post_ID);
  82.             $post_content = $post->post_content;
  83.    }
  84.     if ($post->post_excerpt) {
  85.             $description  = $post->post_excerpt;
  86.     } else {
  87.         if(preg_match('/<p>(.*)<\/p>/iU',trim(strip_tags($post->post_content,"<p>")),$result)){
  88.             $post_content = $result['1'];
  89.         } else {
  90.             $post_content_r = explode("\n",trim(strip_tags($post->post_content)));
  91.             $post_content = $post_content_r['0'];
  92.         }
  93.         $description = utf8Substr($post_content,0,$len);
  94.         return $description;
  95.     }
  96. }
  97. /**
  98. * WordPress 获取文章图片加强版
  99. */
  100. function get_mypost_thumbnail($post_ID){
  101.     if (has_post_thumbnail()) {
  102.             $timthumb_src = wp_get_attachment_image_src( get_post_thumbnail_id($post_ID), 'full' );
  103.             $url = $timthumb_src[0];
  104.     } else {
  105.         if(!$post_content){
  106.             $post = get_post($post_ID);
  107.             $post_content = $post->post_content;
  108.         }
  109.         preg_match_all('|<img.*?src=[\'"](.*?)[\'"].*?>|i', do_shortcode($post_content), $matches);
  110.         if$matches && isset($matches[1]) && isset($matches[1][0]) ){
  111.             $url =  $matches[1][0];
  112.         }else{
  113.             $url =  '';
  114.         }
  115.     }
  116.     return $url;
  117. }
  118. //格式化文件字节
  119. function formatSizeUnits($bytes)
  120. {
  121.     if ($bytes >= 1073741824)
  122.     {
  123.         $bytes = number_format($bytes / 1073741824, 2) . ' GB';
  124.     }
  125.     elseif ($bytes >= 1048576)
  126.     {
  127.         $bytes = number_format($bytes / 1048576, 2) . ' MB';
  128.     }
  129.     elseif ($bytes >= 1024)
  130.     {
  131.         $bytes = number_format($bytes / 1024, 2) . ' KB';
  132.     }
  133.     elseif ($bytes > 1)
  134.     {
  135.         $bytes = $bytes . ' bytes';
  136.     }
  137.     elseif ($bytes == 1)
  138.     {
  139.         $bytes = $bytes . ' byte';
  140.     }
  141.     else
  142.     {
  143.         $bytes = '0 bytes';
  144.     }
  145.     return $bytes;
  146. }
  147. //获取附件大小www.soguifan.com
  148. function wpatt_filsize() {
  149.  $attachments = get_attached_media( 'application', $post->ID );
  150. if ($attachments){
  151. foreach ($attachments as $attachment){
  152. if ((file_exists(get_attached_file($attachment->ID)))) {
  153.                 $fsize = formatSizeUnits(filesize(get_attached_file($attachment->ID)));
  154.             } else {
  155.                 $fsize = '错误';
  156.             }
  157. }}
  158. return $fsize;
  159. }
» 本文链接:http://www.soguifan.com/wordpress/wp-code/1308.html
» 订阅本站:http://www.soguifan.com/feed
» 转载请注明来源:搜规范 » 《WordPress针对360智能摘要、百度星火计划目录分类显示不同效果,并显示附件大小》

微信 OR 支付宝 扫描二维码
为本文作者 打个赏
pay_weixin    pay_weixin
金额随意 快来“打”我呀~




留言