首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >typecho缩略图加入根据标签缩略名输出缩略图

typecho缩略图加入根据标签缩略名输出缩略图

作者头像
泽泽社长
发布2023-04-17 16:40:38
发布2023-04-17 16:40:38
1.8K0
举报
文章被收录于专栏:泽泽社泽泽社

做出来的效果就是: 缩略图显示,依次是附件中的图片,若不存在,输出文章的第一张图片,若不存在,输出对应的tag缩略名图片,若是未配置的tag,则输出随机图片,若文章不存在tag,则输出随机图片。

首先在functions.php添加

代码语言:javascript
复制
/** 输出文章缩略图 */
function showThumbnail($widget)
{ 
    // 当文章无图片时的默认缩略图
    $rand = rand(1,99); // 随机 1-99 张缩略图
    $random = $widget->widget('Widget_Options')->themeUrl . '/img/sj/' . $rand . '.jpg'; // 随机缩略图路径
   // $random = $widget->widget('Widget_Options')->themeUrl . '/img/mr.jpg'; // 若只想要一张默认缩略图请删除本行开头的"//",需要在img文件夹下放个mr.jpg图片

    $attach = $widget->attachments(1)->attachment;
    $pattern = '/\<img.*?src\=\"(.*?)\"[^>]*>/i'; 



if (preg_match_all($pattern, $widget->content, $thumbUrl)) {
         echo $thumbUrl[1][0];
    } else     if ($attach->isImage) {
      echo $attach->url; 
    } 
else
if ($widget->tags) {
foreach ($widget->tags as $tag) {
if($tag['slug']==daima||$tag['slug']==anzhuo){//if语句判断标签缩略名,如果是则输出下面文件夹内的图片
$a= $widget->widget('Widget_Options')->themeUrl . '/img/tag/' . $tag['slug'] . '.jpg';
echo $a;
}else {
echo $random;//没有匹配的标签图片,则随机输出图片
}
break;
}
} else {
echo $random;
}      
}

模板中需要添加缩略图地址的地方添加

代码语言:javascript
复制
<?php showThumbnail($this); ?>

图片放置位置,在对应模板根目录里,添加img文件夹,然后新建文件夹sj,里面放图片,格式要求1.jpg...99.jpg,然后再在img文件夹下新建文件夹tag里面放置tag缩略名对应的图片,按照上述代码的话需要放置两站图片,命名分别为daima.jpg和anbzhuo.jpg。

最后提示 typecho的标签缩略名后台是可以设置的,不设置的话默认是和标签名字一样。比如该篇文章标签名字是typecho,默认他的缩略名也是typecho,但我把它的缩略名改成了te,也就是说这篇文章的缩略图是te.jpg。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档