自定义WordPress摘要长度

Dec 8th, 2007

转载本站文章请注明,转载自:扶凯[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个空格。

Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪 ViVi 365Key 网摘 天极网摘 和讯网摘 博拉网 POCO 网摘 饭否 QQ 书签 Digbuzz 我挖网 Mister Wong
  1. geniusy
    Dec 29th, 2007 at 14:40
    Reply | Quote | #1

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

  2. 扶凯
    Dec 29th, 2007 at 16:33
    Reply | Quote | #2

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

  3. zoare
    Apr 23rd, 2008 at 18:15
    Reply | Quote | #3

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

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

  5. 倩女
    Dec 23rd, 2009 at 10:09
    Reply | Quote | #5

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

  6. admin
    Dec 24th, 2009 at 13:29
    Reply | Quote | #6

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