Thumb

这是一款文章封面图自定义上传插件,传统自定义封面图都是通过文章自定义字段填写图片地址的方式,不是很优雅,所以这个插件就诞生了,它直接点击上传就行,目前我在售的主题Sola1.2.0Plain2.4.8Dinner2.3.3Sinner3.8.2版本及以上均已自动适配,其他主题请按照文章下方适配方法进行适配。

文章封面图上传插件.jpg

插件注意事项

  • 确保插件文件夹名字为Thumb,大小写也要一致
  • 插件文件夹里面的uploads权限要可以写入,755权限就可以。
  • 插件升级要保留uploads文件夹新增或覆盖其他文件即可,因为图片都在uploads文件夹下。
  • 已经上传的文章封面图,在删除文章时会自动删除,不用担心无用图片堆积。
价格: 15.00 元
VIP会员价格:12.00元终身会员价格:8.00元
温馨提示:登录付款后可永久阅读隐藏内容。 付费可读

第三方主题适配

如果你用的不是以上主题,则需要修改自己主题文章封面图函数,在适当位置增加如下代码:

   $name = md5(文章cid);
   $file1 = ".".__TYPECHO_PLUGIN_DIR__."/Thumb/uploads/".$name.'.webp';
   $file2 = ".".__TYPECHO_PLUGIN_DIR__."/Thumb/uploads/".$name.'.jpg';
   if(file_exists($file1)){
        $img=Helper::options()->rootUrl.__TYPECHO_PLUGIN_DIR__."/Thumb/uploads/".$name.'.webp?'.filemtime($file1);
    }
   elseif(file_exists($file2)){
        $img=Helper::options()->rootUrl.__TYPECHO_PLUGIN_DIR__."/Thumb/uploads/".$name.'.jpg?'.filemtime($file2);
    }

例如我的主题封面图函数改好后就是这个样子的

//文章缩略图函数
function showThumbnail($widget,$type=0)
{ 
    $random = 'https://images.unsplash.com/photo-1533158307587-828f0a76ef46?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wzNDExMjB8MHwxfHNlYXJjaHwyNHx8cGhvdG98ZW58MHx8fHwxNjk3ODY4NDA5fDA&ixlib=rb-4.0.3&q=80&w=1080';//这里时默认缩略图
    $pattern = '/\<img.*?\ssrc\=\"(.*?)\"[^>]*>/i';
    $attach = $widget->widget('Widget_Contents_Attachment_Related@' . $widget->cid . '-' . uniqid(), array(
            'parentId'  => $widget->cid,'limit'     => 1,'offset'    => 0))->attachment;
    $t=preg_match_all($pattern, $widget->content, $thumbUrl);
    if(!$t){
    $pattern = '/\<a.*?data\-xurl\=\"(.*?)\"[^>]*>/i';
    $t=preg_match_all($pattern, $widget->content, $thumbUrl);
    }
   $img=$random;

   $name = md5($widget->cid);
   $file1 = ".".__TYPECHO_PLUGIN_DIR__."/Thumb/uploads/".$name.'.webp';
   $file2 = ".".__TYPECHO_PLUGIN_DIR__."/Thumb/uploads/".$name.'.jpg';
   if(file_exists($file1)){
        $img=Helper::options()->rootUrl.__TYPECHO_PLUGIN_DIR__."/Thumb/uploads/".$name.'.webp?'.filemtime($file1);
    }
   elseif(file_exists($file2)){
        $img=Helper::options()->rootUrl.__TYPECHO_PLUGIN_DIR__."/Thumb/uploads/".$name.'.jpg?'.filemtime($file2);
    }
   
elseif ($t && strpos($thumbUrl[1][0],'icon.png') == false && strpos($thumbUrl[1][0],'alipay') == false && strpos($thumbUrl[1][0],'wechat') == false) {$img = $thumbUrl[1][0];}//从文章中获取封面
elseif($widget->fields->thumb){$img=$widget->fields->thumb;}//自定义字段设置封面
  elseif (@$attach->isImage) {$img=$attach->url;}//从附件中获取封面
  if($type==0){
  if($img==$random){echo $img;}else{echo $img.Helper::options()->thumbnail;}//输出封面图
  }else{
   if($img==$random){return $img;}else{return $img.Helper::options()->thumbnail;}//输出封面图     
  }
}

代码小白请忽略,改不明白的不负责售后哈。

更新历史

2024年1月19日发布1.1.1版本
修复上版本图片转为webp格式后图片后缀还是jpg的问题,新增支持上传webp格式图片。

2024年1月发布1.1.0版本
此版本会将上传的封面图自动转换为webp格式,不想用webp的可以继续用旧版本,插件更新务必看下文章上方的更新插件的注意事项。
2023年12月发布1.0.5版本
新增支持删除已上传的封面图,修复某些情况下同名图片无法上传的问题。插件更新务必看下文章上方的更新插件的注意事项。
2023年11月发布1.0.1版本
对没有开启伪静态情况进行兼容。
2023年10月发布1.0.0版本
第一个版本,实现了封面图的上传。

版权属于:泽泽社长
本文链接:https://store.typecho.work/archives/thumb-plugin.html
本站未注明转载的文章均为原创,并采用 CC BY-NC-SA 4.0 授权协议,转载请注明来源,谢谢!