wordpress 高级摘要获把图片替换成[图片]flash 替换成[flash]

2011-10-149,70711

1.把下面代码复制到主题的functions.php文件里面

2.使用方法在需要调用的地方写上 <?php echo lianyue_cut_off(lianyue_the_content(),200);   ?>     200等于200个字  不代表字节数或者 400个小写英文

  1. /*————————————————————————————————————————————————————我是可爱的分割线by:恋月————————————————————————————————————————————————————*/
  2. /*自己写的文章摘要..*/
  3. function lianyue_the_content($more_link_text = null, $stripteaser = 0) {
  4. global $more;
  5. $more = 1;
  6. $content = get_the_content($more_link_text, $stripteaser);
  7. $content = apply_filters('the_content', $content);
  8. $content = preg_replace('/<img(.*?)class=[\'"]wp-smiley[\'"](.*?)>/i', '[表情]', $content);
  9. $content = preg_replace('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i','[图片]', $content);
  10. $content = preg_replace('/<embed.+src=[\'"]([^\'"]+)[\'"].*>/i','[Flash]', $content);
  11. $content = preg_replace('/<style(.*?)style>/i','', $content);
  12. $content = preg_replace('/<(.*?)>/i', '', $content);
  13. $content = preg_replace('/<!-- (.*?)-->/i', '', $content);
  14. $content = str_replace(array("\r\n", "\r", "\n", " ", "\t", "\o", "\x0B","\"",'&nbsp;'),"",$content); //删除空格等
  15. return $content;
  16. }

  17. /*————————————————————————————————————————————————————我是可爱的分割线by:恋月————————————————————————————————————————————————————*/
  18. /*截断UTF_8*/
  19. function lianyue_cut_off($sourcestr='',$cutlength)
  20. {
  21. $returnstr='';
  22. $i=0;
  23. $n=0;
  24. $str_length=strlen($sourcestr);//字符串的字节数
  25. while (($n<$cutlength) and ($i<=$str_length))
  26. {
  27. $temp_str=substr($sourcestr,$i,1);
  28. $ascnum=Ord($temp_str);//得到字符串中第$i位字符的ascii码
  29. if ($ascnum>=224) //如果ASCII位高与224,
  30. {
  31. $returnstr=$returnstr.substr($sourcestr,$i,3); //根据UTF-8编码规范,将3个连续的字符计为单个字符
  32. $i=$i+3; //实际Byte计为3
  33. $n++; //字串长度计1
  34. }
  35. elseif ($ascnum>=192) //如果ASCII位高与192,
  36. {
  37. $returnstr=$returnstr.substr($sourcestr,$i,2); //根据UTF-8编码规范,将2个连续的字符计为单个字符
  38. $i=$i+2; //实际Byte计为2
  39. $n++; //字串长度计1
  40. }
  41. elseif ($ascnum>=65 && $ascnum<=90) //如果是大写字母,
  42. {
  43. $returnstr=$returnstr.substr($sourcestr,$i,1);
  44. $i=$i+1; //实际的Byte数仍计1个
  45. $n++; //但考虑整体美观,大写字母计成一个高位字符
  46. }
  47. else //其他情况下,包括小写字母和半角标点符号,
  48. {
  49. $returnstr=$returnstr.substr($sourcestr,$i,1);
  50. $i=$i+1; //实际的Byte数计1个
  51. $n=$n+0.5; //小写字母和半角标点等与半个高位字符宽...
  52. }
  53. }
  54. if ($str_length>$cutlength){
  55. $returnstr = $returnstr . "...";//超过长度时在尾处加上省略号
  56. }
  57. return $returnstr;
  58. }

 

 

 

 

2 0
  • 流产吃什么好2011-10-15 上午 11:17 回复

    过来学习学习

    #1  
  • 有点蓝2011-10-15 下午 2:24 回复

    这标题…… 我怎么看不大懂啊~ :arrow: :arrow:

    #2  
    • 恋月2011-10-15 下午 3:13 回复

      0.0 我也不知道该怎么取

      #21
      • 有点蓝2011-10-15 下午 3:40 回复

        我猜应该是“完美中文截断”的意思吧 :mrgreen:

        #22
        • 恋月2011-10-15 下午 4:14 回复

          也不是这能够 吧文章的flash 替换成文字版flash

          #23
  • 炒股技巧2011-10-18 上午 10:59 回复

    不错!支持一下!!

    #3  
  • 汇金增持2011-11-17 下午 11:28 回复

    来看看博主的文章,这个代码还是不错的

    #4  
  • 镜花水月2011-11-18 下午 11:25 回复


    这个
    有点难懂啊 :eek:

    #5  
  • 80后男人2012-08-14 上午 10:03 回复

    我看懂了,就是把摘要中的图片或flash用[图片][flash替代是吧?]先标记一下,改天试试

    #6  
  • 匿名2012-08-16 下午 11:07 回复

    d

    #7  
  • 90影院2012-08-20 下午 3:32 回复

    不错。。支持一下。。。

    #8