大部分人的习惯都是在首页显示文章的摘要,本文总结了几种在首页显示摘要的方法。
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>’);
原文链接:http://domety.com/archives/216/