Typecho 首页摘要自动截取样式

插件开发及发布

版主: woniou

回复
cyclists
帖子: 22
注册时间: 2015年 4月 27日 11:16
来自: https://sep.cc
联系:

Typecho 首页摘要自动截取样式

帖子 cyclists »

Typecho默认是全文输出的,想摘要的话,官方给出了最简单的方法,就是在你想截取的位置加上<!--more-->标签即可。

但是这种方法在有图片文章的情况下摘要就会出现图片信息,也完全暴露了标签元素,影响美观,下面就给出了两种解决方法。

注:如果没有<!--more-->标签,会自动截取文章的前270字当作缩略输出。

编辑主题index.php文件,找到以下PHP代码;

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

替换为你想实现的代码,如下;

带输出图片的代码:

<?php
if(preg_match('/<!--more-->/',$this->content)||mb_strlen($this->content, 'utf-8') < 270)
{
$this->content('阅读全文...');
}
else
{
$c=mb_substr($this->content, 0, 270, 'utf-8');
echo $c.'...';
echo '</br><p class="more"><a href="',$this->permalink(),'" title="',$this->title(),'">阅读全文...</a></p>';
}
?>

不带输出图片的代码:

<?php
if(preg_match('/<!--more-->/',$this->content)||mb_strlen($this->content, 'utf-8') < 270)
{
$this->content('阅读全文...');
}
else
{
$c=mb_substr($this->content, 0, 270, 'utf-8');
$c=preg_replace("/<[img|IMG].*?src=[\'\"](.*?(?:[\.gif|\.jpg|\.jpeg|\.png|\.tiff|\.bmp]))[\'|\"].*?[\/]?>/","",$c);
echo $c.'...';
echo '</br><p class="more"><a href="',$this->permalink(),'" title="',$this->title(),'">阅读全文...</a></p>';
}
?>
```
另外如果截取的文章前面存在代码段,**由于自动截取遇到代码段虽然截取了但是没有添加`</code></pre>`结束标签,所以会造成整站css的错乱**,下面是解决方案,使用正则查找是否存在代码段,如果存在截取后自动添加结束标签。(此代码同样不输出图片)


<?php
if(preg_match('/<!--more-->/',$this->content)||mb_strlen($this->content, 'utf-8') < 270)
{
$this->content('阅读全文...');
}
else
{
$c=mb_substr($this->content, 0, 270, 'utf-8');
$c=preg_replace("/<[img|IMG].*?src=[\'\"](.*?(?:[\.gif|\.jpg|\.jpeg|\.png|\.tiff|\.bmp]))[\'|\"].*?[\/]?>/","",$c);
if(preg_match('/<pre>/',$c))
{
echo $c,'</code></pre>','...';;
}
else
{
echo $c.'...';
}
echo '</br><p class="more"><a href="',$this->permalink(),'" title="',$this->title(),'">阅读全文...</a></p>';
}
?>

项目地址:https://sep.cc/Summary.html
上次由 cyclists 在 2021年 9月 27日 00:30,总共编辑 2 次。
xiaobo
帖子: 4
注册时间: 2017年 12月 7日 16:38
联系:

Re: Typecho 首页摘要自动截取样式

帖子 xiaobo »

你好楼主,有带图片正则表达式的摘要么。
cyclists
帖子: 22
注册时间: 2015年 4月 27日 11:16
来自: https://sep.cc
联系:

Re: Typecho 首页摘要自动截取样式

帖子 cyclists »

xiaobo 写了:你好楼主,有带图片正则表达式的摘要么。

这个就是正则表达式摘要
cyclists
帖子: 22
注册时间: 2015年 4月 27日 11:16
来自: https://sep.cc
联系:

Re: Typecho 首页摘要自动截取样式

帖子 cyclists »

没什么人使用ty吗
头像
夏目贵志
帖子: 151
注册时间: 2016年 4月 18日 22:08
来自: https://xiamuyourenzhang.cn/

Re: Typecho 首页摘要自动截取样式

帖子 夏目贵志 »

@https://xiamuyourenzhang.cn/ 夏目友人帐 已经使用 感谢!
回复