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

  1. /** 输出文章缩略图 */
  2. function showThumbnail($widget,$imgnum){ //获取两个参数,文章的ID和需要显示的图片数量
  3. // 当文章无图片时的默认缩略图
  4. $rand = rand(1,20);
  5. $random = $widget->widget('Widget_Options')->themeUrl . '/img/rand/' . $rand . '.jpg'; // 随机缩略图路径
  6. $attach = $widget->attachments(1)->attachment;
  7. $pattern = '/\<img.*?src\=\"(.*?)\"[^>]*>/i';
  8. $patternMD = '/\!\[.*?\]\((http(s)?:\/\/.*?(jpg|png))/i';
  9. $patternMDfoot = '/\[.*?\]:\s*(http(s)?:\/\/.*?(jpg|png))/i';
  10. //如果文章内有插图,则调用插图
  11. if (preg_match_all($pattern, $widget->content, $thumbUrl)) {
  12. echo $thumbUrl[1][$imgnum];
  13. }
  14. //没有就调用第一个图片附件
  15. else if ($attach && $attach->isImage) {
  16. echo $attach->url;
  17. }
  18. //如果是内联式markdown格式的图片
  19. else if (preg_match_all($patternMD, $widget->content, $thumbUrl)) {
  20. echo $thumbUrl[1][$imgnum];
  21. }
  22. //如果是脚注式markdown格式的图片
  23. else if (preg_match_all($patternMDfoot, $widget->content, $thumbUrl)) {
  24. echo $thumbUrl[1][$imgnum];
  25. }
  26. //如果真的没有图片,就调用一张随机图片
  27. else{
  28. echo $random;
  29. }
  30. }

输出代码:

获取第1,第2,第3张图片代码

  1. <?php showThumbnail($this,0); ?>
  2. <?php showThumbnail($this,1); ?>
  3. <?php showThumbnail($this,2); ?>
文章由官网发布,如若转载,请注明出处:https://www.veimoz.com/45
0 评论
3.2k

发表评论

!