typecho调用多张缩略图,非插件实现
/** 输出文章缩略图 */
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;
}
}
输出代码:
获取第1,第2,第3张图片代码
<?php showThumbnail($this,0); ?>
<?php showThumbnail($this,1); ?>
<?php showThumbnail($this,2); ?>
文章由官网发布,如若转载,请注明出处:https://www.veimoz.com/45
0 评论
3k
发表评论
热门文章
自媒体博客Spimes主题35w 阅读
Spimes主题专为博客、自媒体、资讯类的网站设计....
vCard主题个人简历主题13w 阅读
一款个人简历主题,可以简单搭建一下,具体也比较简单....
Splity博客双栏主题12w 阅读
仿制主题,Typecho博客主题,昼夜双版设计,可....
Spzac个人资讯下载类主题11w 阅读
用于作品展示、资源下载,行业垂直性网站、个人博客,....
热评文章
自媒体博客Spimes主题418 评论
Splity博客双栏主题187 评论
Spzac个人资讯下载类主题89 评论
Splinx博客图片主题35 评论
Spzhi知识付费社区主题34 评论
三栏清新博客S_blog主题30 评论
vCard主题个人简历主题29 评论
Pure轻简主题28 评论
Z.
4天前
博主你好,Deng插件,这个点击不进去,提示这个(Warning: require_once(/www/wwwroot/w.zzy2020.com/usr/plugins/Deng/Deng/html/profile.php): failed to open stream: No such file or directory in /www/wwwroot/w.zzy2020.com/Fresh/extending.php on line 26
Fatal error: require_once(): Failed opening required '/www/wwwroot/w.zzy2020.com/usr/plugins/Deng/Deng/html/profile.php' (include_path='.:/www/server/php/72/lib/php') in /www/wwwroot/w.zzy2020.com/Fresh/extending.php on line 26)