排行榜 统计
  • 建站日期:2020/07/11
  • 文章总数:151 篇
  • 评论总数:184 条
  • 分类总数:5 个
  • 最后更新:1月17日

typecho调用多张缩略图,非插件实现

本文阅读 1 分钟
首页 typecho 正文

本文最后更新于2022年12月23日, 已超过483天没有更新。 如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

代码如下:

/** 输出文章缩略图 */
function showThumbnail($widget,$imgnum){ //获取两个参数,文章的ID和需要显示的图片数量
    // 当文章无图片时的默认缩略图
    $rand = rand(1,20); 
    $random = $widget->widget('Widget_Options')->themeUrl . '/img/rand/' . $rand . '.jpg'; // 随机缩略图路径
    $attach = $widget->attachments(1)->attachment;
    $pattern = '/\<img.*?src\=\"(.*?)\"[^>]*>/i'; 
    $patternMD = '/\!\[.*?\]\((http(s)?:\/\/.*?(jpg|png))/i';
    $patternMDfoot = '/\[.*?\]:\s*(http(s)?:\/\/.*?(jpg|png))/i';
    //如果文章内有插图,则调用插图
    if (preg_match_all($pattern, $widget->content, $thumbUrl)) { 
        echo $thumbUrl[1][$imgnum];
    }
    //没有就调用第一个图片附件
    else if ($attach && $attach->isImage) {
        echo $attach->url; 
    } 
    //如果是内联式markdown格式的图片
    else if (preg_match_all($patternMD, $widget->content, $thumbUrl)) {
        echo $thumbUrl[1][$imgnum];
    }
    //如果是脚注式markdown格式的图片
    else if (preg_match_all($patternMDfoot, $widget->content, $thumbUrl)) {
        echo $thumbUrl[1][$imgnum];
    }
    //如果真的没有图片,就调用一张随机图片
    else{
        echo $random;
    }
}

调用的代码就是以下这样,从0开始算,数字0则调用第一张

<?php showThumbnail($this,0); ?>
本文来自投稿,不代表本站立场,如若转载,请注明出处:
-- 展开阅读全文 --
xiuno单栏主题轻拟物模板
« 上一篇 02-04
如何用Sql语句在数据表中添加字段
下一篇 » 12-22