IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Typecho 获取文章第一张图片 For Markdown

    Mike发表于 2015-11-02 10:43:00
    love 0

    这篇文章一直躺在草稿箱里,原因是一直没时间去研究,前几天做Theme 35的时候把它实现了,经过之前的群解散事件,该主题已停止发布,现在想了想还是把这段代码发上来吧。今后也不会再出现免费主题,做得再多也只是吃力不讨好,浪费时间。

    今天给大家带来在Markdown文章的第一张图片获取方法。

    编写思路

    1. 通过Typecho通用过滤器过滤文章内容
    2. 用正则匹配得出图片链接
    3. 提取第一个图片地址

    实现代码

    以下代码,放置在主题functions.php中即可。

    1. //缩略图 For Markdown by Mike.   
    2. function img_postthumb($cid) {   
    3.   $db = Typecho_Db::get();   
    4.   $rs = $db->fetchRow($db->select('table.contents.text')   
    5.     ->from('table.contents')   
    6.     ->where('table.contents.cid=?', $cid)   
    7.     ->order('table.contents.cid', Typecho_Db::SORT_ASC)   
    8.     ->limit(1));   
    9.   $final = Typecho_Widget::widget('Widget_Abstract_Contents')->filter($rs);   
    10.   preg_match_all("/(http:\/\/)[^>]*?.(png|jpg)/i", $final['text'], $thumbUrl);  //通过正则式获取图片地址   
    11.   $img_src = $thumbUrl[0][0];  //将赋值给img_src   
    12.   $img_counter = count($thumbUrl[0]);  //一个src地址的计数器   
    13.   switch ($img_counter > 0) {   
    14.     case $allPics = 1:   
    15.       echo $img_src;  //当找到一个src地址的时候,输出缩略图   
    16.       break;   
    17.       default:   
    18.       echo "nopic.png";  //没找到(默认情况下),不输出任何内容   
    19.   };   
    20. }  

    调用方法

    1. <?php echo img_postthumb($this->cid); ?>  



沪ICP备19023445号-2号
友情链接