typecho首页文章带格式自动截取

Typecho杂文 typecho 2016-03-29 阅读:2215

typecho自动截取前140个字符
php <?php $this->excerpt(140, '...'); ?>
带格式截取代码如下

 <?php
preg_match_all('/<p>.*?<\/p>/im', $this->content, $m);
//print_r ($m[0]);
//如果有一个以上的p
if(count($m[0])>0){
//echo('--第一个P字符串长度--'.strlen($m[0][0]).'<hr>');

//如果第一个p字数小于200
if(strlen($m[0][0])<200){
//则输出第一个p+第二个p (如果没有第二个p php好像会自动忽略)
echo($m[0][0].$m[0][1]);
}
else{
//输出第一个p
echo($m[0][0]);
}
}
else{
//echo('没有找到p,输出摘要:<hr>');
$this->excerpt(140, '...');
}
//echo('<hr>-----数量'.count($m[0]));
?>

代码是在typecho论坛中挖掘到的,有些模板用上会美观许多,我的模板用上后感觉很丑,故放弃。

9条评论

    稜角沙砾

    咋么才能使用像WP一样使用上自定义摘要呢~~~(〜 ̄△ ̄)〜

    游客 Windows10 1232 天前回复

      稜角沙砾
      @稜角沙砾

      搞定,Thx uu,#[笑尿]#[吃瓜]

      游客 Windows10 1232 天前回复

      Jrotty
      @稜角沙砾

      在模板显示摘要的地方加个判断,如果自定义字段出现则显示自定义字段对应点字段值,否则显示正常的摘要。(>_>)相关类似代码【<?php if (isset($this->fields->d)): ?><?php $this->fields->d(); ?>...<?php else: ?> <?php $this->excerpt(140, '...'); ?><?php endif; ?> 】

      游客 Windows10 1232 天前回复

      稜角沙砾
      @稜角沙砾

      指定点!!我都不知道从何下手,比如说关键字(´;ω;`)

      游客 Windows10 1232 天前回复

      Jrotty
      @稜角沙砾

      修改模板就能达到这个效果!需要用到自定义字段

      游客 Windows10 1232 天前回复

    Srioe

    [呵呵]先收藏,一定有用

    游客 Windows10 1421 天前回复

    李东辉

    技术贴,还在学习中

    游客 Windows10 1431 天前回复

    的得地

    你这么快就用上了tag图片

    游客 Windows10 1431 天前回复

      近泽
      @的得地

      嗯!暂时只匹配了6个标签!

      游客 Windows10 1431 天前回复