Typecho获取文章缩略图,文章缩略图

笔记
1380 0

看人家的主题都是缩略图加随机图等什么的,很是眼热,可惜水平有限又不想用插件,就只好百度,百度找了几个获取缩略图都是需要手动在文章里面找一个图片替换为IMG。功夫不负有心人,还真让我找到一个,记录一下:

主题functions.php添加以下代码

function img_postthumb($thumbThis) {
    $db = Typecho_Db::get();
    $rs = $db->fetchRow($db->select('table.contents.text')
        ->from('table.contents')
        ->where('table.contents.cid=?', $thumbThis->cid)
        ->order('table.contents.cid', Typecho_Db::SORT_ASC)
        ->limit(1));
    preg_match_all('/\<img.*?src\=\"(.*?)\"[^>]*>/i', $rs['text'], $thumbUrl);  //通过正则

式获取图片地址
    preg_match_all('/\!\[.*?\]\((http(s)?:\/\/.*?(jpg|png))/i', $rs['text'], $patternMD);  

//通过正则式获取图片地址
    preg_match_all('/\[.*?\]:\s*(http(s)?:\/\/.*?(jpg|png))/i', $rs['text'], 

$patternMDfoot);  //通过正则式获取图片地址
    if(count($thumbUrl[0])>0){
        return $thumbUrl[1][0];  //当找到一个src地址的时候,输出缩略图
    }else if(count($patternMD[0])>0){
        return $patternMD[1][0];
    }else if(count($patternMDfoot[0])>0){
        return $patternMDfoot[1][0];
    }else{
        //在主题根目录下的 /img 目录下放随机图片 thumb_开头
        //如:thumb_1.jpg
        return $thumbThis->widget('Widget_Options')->themeUrl."/img/thumb_".rand

(1,5).".jpg";
    }
}

使用方法:

在需要调用的地方加入:

<?php echo img_postthumb($this); ?>
最后更新 2021-03-07
评论 ( 0 )
OωO
隐私评论