wordpress(自定义摘要)几种方法

大部分人的习惯都是在首页显示文章的摘要,本文总结了几种在首页显示摘要的方法。

 

more标签

这种方法应该是最灵活的一种方法,操作也很简单,只需要你在编辑文章的时候插入more标签

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

那么如果你在主题的首页模板中调用the_content函数,首页的文章摘要就显示more之前的内容。相反,如果没有插入more标签,就会显示全文。

手动输入摘要

在首页模板中(比如home.php或index.php)中调用the_excerpt函数显示摘要,如果你在编辑文章的时候,在下面的“摘要”内输入了内容,则会显示该“摘要”里的内容

如果“摘要”里没有内容,就输出more标签前的内容,再如果没有more标签,就输出固定字数的摘要(这个固定的字数好像是默认的,很长,我还没找到更改这个字数的方法,有知道的希望告之)。

显示固定的字数

如果你的主机开通了php的mb_string扩展的话,可以使用mb_strimwidth函数来截取文章内容,以达到显示固定字数摘要的目的,比如首页摘要显示前200个字

  1. echo mb_strimwidth(strip_tags($post->post_content),0,200,’……’);

这样就会显示文章的前200个字,随后跟着一个省略号。这个mb_strimwidth函数可以很好截取中文字符。我们再稍改造一下,就可以显示“阅读全文”链接的效果

  1. echo mb_strimwidth(strip_tags($post->post_content),0,200,'<a href=”‘.get_permalink().'”>……[阅读全文]</a>’);

但是,如果假如万一你的主机没有激活php的mb_string扩展,使用这个函数就会报错。在这种情况下,我们可以自定义一个类似的函数,下面是我写的一个截取utf-8字符串的函数dm_strimwidth,也是我正在使用的方法

  1. function dm_strimwidth($str ,$start , $width ,$trimmarker ){
  2.  $output = preg_replace(‘/^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,’.$start.’}((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,’.$width.’}).*/s’,’\1′,$str);
  3.  return $output.$trimmarker;
  4. }

使用方法和前面的mb_strimwidth是一样的,不过使用前你需要把上面的函数定义复制到functions.php文件中,然后调用

  1. echo dm_strimwidth(strip_tags($post->post_content),0,200,'<a href=”‘.get_permalink().'”>……[阅读全文]</a>’);

综合方法

有时候下面这种做法也是不错的,即如果给文章手动添加了摘要,就显示这个手动添加的摘要,如果没有就显示固定的字数。方法如下:

  1. if(has_excerpt()) the_excerpt();
  2.  else
  3.          echo mb_strimwidth(strip_tags($post->post_content),0,200,'<a href=”‘.get_permalink().'”>……[阅读全文]</a>’);

 

 

原文链接:http://domety.com/archives/216/