自定义WordPress摘要长度

转载本站文章请注明,转载自:扶凯[http://www.php-oa.com]

本文链接: http://www.php-oa.com/2007/12/08/zidingyiwordpresszhaiyaochangdu.html

新的方法,更新日期7月4日,版本WordPress2.5。

找到你模板中的index.php下面的这句

1
<?php the_content(&rsquo;Read the rest of this entry &raquo;&rsquo;); ?>

修改为

1
<?php the_excerpt();?>

下面是以前的旧方法

在WordPress的模板中,通常使用the_excerpt来显式当前文章的摘要。但摘要太长。下面就是讲讲如何把摘要变短。因为我原来用 cublog,那个的很好用可以自己设置.下面我们也来设置wordpress吧。我现在用的是版本是WordPress 2.3.1 ; 在wp-includes目录下找到formatting.php,里面有这样一个函数:

 

  1. function wp_trim_excerpt($text) {
  2. global $post;
  3. if ( == $text ) {
  4. $text = get_the_content();
  5. $text = apply_filters(the_content, $text);
  6. $text = str_replace(]]>, ]]>, $text);
  7. $text = strip_tags($text);
  8. $excerpt_length =55;
  9. $words = explode( , $text, $excerpt_length + 1);
  10. if (count($words) > $excerpt_length) {
  11. array_pop($words);
  12. array_push($words, [...]);
  13. $text = implode( , $words);
  14. }
  15. }
  16. return $text;
  17. }

它就是专门用来截取摘要长度的。把基本的“55”改成10就可以了。 为什么要减少这么多呢?这就要看第10行使用的count函数了。 它是按照空格(换行也相当于空格)来计数的。 在英文中,每个词之间都会有空格,所以遇到第三个空格时只会输出三个单词。 但中文就不一样的,句号后面都没有空格。唯一的空格发生在换行时。所以这样的设置就是把前面10行作为摘要输出。 当然,如果你在第一行里有很多空格,那么只会输出到第10个空格。

6 条留言

我要留言
  • 1 F

    geniusy  |  2007/12/08 20:54 下午  

    用了,但是没效果啊,不知道怎么回事

  • 2 F

    扶凯  |  2007/12/08 20:54 下午  

    要用新的方法.有空可以加我的qq,我教你147492361

  • 3 F

    zoare  |  2007/12/08 20:54 下午  

    找了很久。也没找到这个的解决方法。
    从你这才发现一开始,自己找错了方向了,找的是the_content()的用法,
    现在解决了,我遇到的难题了,,
    真要谢谢你了、、、

  • 4 F

    为Wordpress里的中文文章自动截取摘要  |  2007/12/08 20:54 下午  

    好办法。只是wordpress更新频繁,这样直接修改核心代码可能会在将来带来更多无谓的麻烦。

  • 5 F

    倩女  |  2007/12/08 20:54 下午  

    我首页是可以生成摘要,但列表页还是不变?怎么回事?难道要对列表页单独再设置下?

  • 6 F

    admin  |  2007/12/08 20:54 下午  

    我不知你指的什么,可能你需要装一个中文插件

(必填)
(必填,绝不公开)