一般我们都需要在想截断摘要的地方插入<!--more-->,但是每篇文章都要手动去添加实在麻烦。其实 Typecho 已经内置了这么一个函数,可以通过限制字数的方式截断摘要。

把模板中的:

   <?php $this->content('阅读剩余部分...'); ?>

替换成

   <?php $this->excerpt(180, '...'); ?>

其中 180 为摘要字数,... 为省略符号

新版功能,自动输出内容中第一个块级元素中的内容

   <?php $this->summary(); ?>

想删除摘要中不想要的内容(比如回复可见),如下

   $content = $this->excerpt;
   $content = shortCodeProcess($content); // 删除你不想要的内容
   $abstract = Typecho_Common::fixHtml(Typecho_Common::subStr($content, 0, 180, $trim));
   if ($this->password) {
   $abstract = _t(_t("加密文章,请前往内页查看详情"));
   }
   if (empty($abstract)) $abstract = _t("暂无简介");
   echo $abstract;

shortCodeProcess 示例

   function shortCodeProcess(text) {
   if (strpos($text, '[hide') !== false) {
   $text = preg_replace('/(?s)<pre[^<]*>.*?<\/pre>(*SKIP)(*F)|\[hide]([^\]]*?)\[\/hide]/', '', $excerpt);
   }
   return $text;
   }

扫描二维码,在手机上阅读!