0

wordpress自动显示摘要

网站研究 区区第二 2010-05-08 15:15:23

 wordpress自动显示摘要

  1. /** 
  2.  * author 冰古 
  3.  *wordpress自动显示摘要 
  4.  * link http://wanwp.com 
  5.  */ 
  6. $size = 500;    // 500是显示的字节数,可按照自己的要求修改 
  7. $more_link_text = '阅读全文...';    // 显示在摘要后面的提示 
  8.  
  9. add_action('the_content''control_content_size'); 
  10.  
  11. function control_content_size($content) { 
  12.     global $size$more_link_text
  13.     if (is_singular()) return $content
  14.     $content = strip_tags($content,"<p>"); 
  15.     $content = cut_str($content$size); 
  16.     $content = '<p>' . $content . '</p><p><a href="' . get_permalink() . "" class="more-link">$more_link_text</a></p>"
  17.     return $content
  18.  
  19. /** 
  20.  * cut_str用于截断包含中文(或其他多字节?)的utf8编码的字符串 
  21.  * @param string $str utf8编码的字符串 
  22.  * @param int $len 需要截取的长度(单位是字节) 
  23.  */ 
  24. function cut_str($str$len) { 
  25.     if (!isset($str[$len])) { 
  26.         // 判断字符串长度是否已经达到需要截取的长度 
  27.         // 未达到时,直接输出原字符串 
  28.     } else { 
  29.         if (seems_utf8($str[$len-1])) // 判断截断字符串的最后一个字符是否是utf8编码的 
  30.             $str = substr($str, 0, $len); // 如果是utf8编码的,直接截断输出 
  31.         else { // 如果不是utf8编码的,因为utf8编码的中文是三个字节进行保存的,则判断该字符和周围字符组成的字符串是否符合utf8编码 
  32.             if(seems_utf8($str[$len-3].$str[$len-2].$str[$len-1])) 
  33.                 $str = substr($str, 0, $len-3) . $str[$len-3] . $str[$len-2] . $str[$len-1]; 
  34.  
  35.             elseif(seems_utf8($str[$len-2].$str[$len-1].$str[$len])) 
  36.                 $str = substr($str, 0, $len-2) . $str[$len-2].$str[$len-1].$str[$len]; 
  37.  
  38.             elseif(seems_utf8($str[$len-1].$str[$len].$str[$len+1])) 
  39.                 $str = substr($str, 0, $len-1) . $str[$len-1].$str[$len].$str[$len+1]; 
  40.  
  41.             else // 这个else应该不用也是可以的 
  42.                 $str = substr($str, 0, $len); 
  43.         } 
  44.     } 
  45.     return $str

 

相关文章

发表留言