版权声明: 转载时请以超链接形式标明文章原始出处和作者信息
本文来自: Domety»《wordpress首页显示摘要的几种方法》
本文链接: http://domety.com/archives/216/
本文作者: DDBug
发表时期: 2010-01-09
大部分人的习惯都是在首页显示文章的摘要,本文总结了几种在首页显示摘要的方法。
more标签
这种方法应该是最灵活的一种方法,操作也很简单,只需要你在编辑文章的时候插入more标签

或者使用快捷键alt+shift+t,效果如下

那么如果你在主题的首页模板中调用the_content函数,首页的文章摘要就显示more之前的内容。相反,如果没有插入more标签,就会显示全文。
手动输入摘要
在首页模板中(比如home.php或index.php)中调用the_excerpt函数显示摘要,如果你在编辑文章的时候,在下面的“摘要”内输入了内容,则会显示该“摘要”里的内容

如果“摘要”里没有内容,就输出more标签前的内容,再如果没有more标签,就输出固定字数的摘要(这个固定的字数好像是默认的,很长,我还没找到更改这个字数的方法,有知道的希望告之)。
显示固定的字数
如果你的主机开通了php的mb_string扩展的话,可以使用mb_strimwidth函数来截取文章内容,以达到显示固定字数摘要的目的,比如首页摘要显示前200个字
echo mb_strimwidth(strip_tags($post->post_content),0,200,'......');
这样就会显示文章的前200个字,随后跟着一个省略号。这个mb_strimwidth函数可以很好截取中文字符。我们再稍改造一下,就可以显示“阅读全文”链接的效果
echo mb_strimwidth(strip_tags($post->post_content),0,200,'<a href="'.get_permalink().'">......[阅读全文]</a>');
但是,如果假如万一你的主机没有激活php的mb_string扩展,使用这个函数就会报错。在这种情况下,我们可以自定义一个类似的函数,下面是我写的一个截取utf-8字符串的函数dm_strimwidth,也是我正在使用的方法
function dm_strimwidth($str ,$start , $width ,$trimmarker ){
$output = preg_replace('/^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$start.'}((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$width.'}).*/s','\1',$str);
return $output.$trimmarker;
}
使用方法和前面的mb_strimwidth是一样的,不过使用前你需要把上面的函数定义复制到functions.php文件中,然后调用
echo dm_strimwidth(strip_tags($post->post_content),0,200,'<a href="'.get_permalink().'">......[阅读全文]</a>');
综合方法
有时候下面这种做法也是不错的,即如果给文章手动添加了摘要,就显示这个手动添加的摘要,如果没有就显示固定的字数。方法如下:
if(has_excerpt()) the_excerpt(); else echo mb_strimwidth(strip_tags($post->post_content),0,200,'<a href="'.get_permalink().'">......[阅读全文]</a>');
天下免费
2010-02-05 星期五 13:58
timberland usa sale
2010-02-19 星期五 16:07
夏季
2010-06-03 星期四 12:48
snowxh
2010-06-16 星期三 01:30
charbin
2010-06-25 星期五 00:40
charbin
2010-06-25 星期五 00:51