首页
归档栏
优秀个人博客
时光机
Search
1
卢松松博客模板
30,253 阅读
2
个人博客模板《绅士》
28,739 阅读
3
typecho个人博客模板《tree》-响应式个人网站模板
26,704 阅读
4
利用伪静态实现阿里云虚拟主机建立多个网站
7,553 阅读
5
写在互联网30年:看看这些图片我们已经老了
6,896 阅读
学无止境
慢生活
模板分享
好文分享
相册
typecho
登录
Search
标签搜索
typecho
网站
个人博客模板
广告
地址
htaccess
代码
设计
欲望
时代
干掉
电报局
指南针
打字机
介绍所
网龄
藏经阁
知道
聊天
function
爱奇智
累计撰写
24
篇文章
累计收到
173
条评论
首页
栏目
学无止境
慢生活
模板分享
好文分享
相册
typecho
页面
归档栏
优秀个人博客
时光机
搜索到
1
篇与
缩略图
的结果
2019-04-04
typecho调用多张缩略图,非插件实现
这就是博客文章列表页显示三张缩略图的实现方式,本博客的模板也是将大多数功能都通过function.php中定义来实现,没有去借助插件之类的,那样确实搞起来很麻烦。比如目前这个功能,大概的参考了youdu模板的写法,问题还是有的,因为需要确保发布的文章必须有三张以上的图片附件,否则就会直接报错,更多的控制我也没有继续写下去,但是进一步的扩展肯定是可以的。代码如下:/** 输出文章缩略图 */ 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); ?>来源:https://www.ruletree.club/archives/877/
2019年04月04日
2,890 阅读
0 评论
0 点赞