前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >zblog调用文中第一张图片作为缩略图,博主亲测可用

zblog调用文中第一张图片作为缩略图,博主亲测可用

作者头像
李洋博客
发布2023-03-03 15:02:27
2770
发布2023-03-03 15:02:27
举报
文章被收录于专栏:李洋博客李洋博客

昨天更新了锦鲤主题模板,网友反馈说文章插入视频之后会出现错版,网站整个都是乱的,随后看了下源代码,没什么太大问题,就是缩略图调用的时候出现了问题,错误的抓取了mp4格式的文件,然后去查看缩略图插件代码,发现没什么问题,再仔细对照官方给出的代码,确定是没有问题了,但是文章视频放在首位就是各种出错,一时间陷入了尴尬的局面。

没办法了只好暂时删除了位于head里的360搜索出图的代码,暂时解决错位问题,但是我在本地测试的时候,问题还是文在,比如无法生成海报,因为获取的还是mp4的文件,根据网友反馈直接在文章上传视频的时候就没有问题,外链的mp4(不仅仅mp4基本视频类都如此)文件就不行,再一次陷入僵局。。。

内心慌得一批,搞什么鬼,代码官方给的不可能出错(我还是太天真,太信任官方了),然后群里求助,自己又测试了几款其他主题,基本都是这个BUG,最后测试@橙色阳光大神的主题才拨云见日,豁然开朗啊,问题就出现在官方代码正则表达式,修改之后如下:

完整版代码如下:

代码语言:javascript
复制
//默认缩略图
function 主题ID_firstimg($article) {
    global $zbp;
    $randnum = mt_rand(1,9);
    $pattern = "/<img.*?src=[\'|\"](.*?)[\'|\"].*?[\/]?>/i";
    $content = $article->Content;
    preg_match_all($pattern,$content,$matchContent);
    if (isset($matchContent[1][0])) {
        $temp = $matchContent[1][0];
    } else {
        $temp = $zbp->host."zb_users/theme/主题ID/style/noimg/" . $randnum . ".jpg";
    }
    return $temp;
}

 这代码就是获取文中第一张图片,如果文中没有图片则随机显示一张照片,随机照片需要在style目录下新建一个noimg文件夹,然后自己设置1-9张图片,后缀是.jpg,例如(1.jpg,2.jpg等)。

如果您的站已经有代码,那么需要替换下源代码,如果无效最好重新启用下其他主题,然后在切换正常使用的主题即可。

查找

代码语言:javascript
复制
$pattern="/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg|\.png]))[\'|\"].*?[\/]?>/";

替换成

代码语言:javascript
复制
$pattern = "/<img[^>]*src=\"([^\"]+\.(gif|jpg|png|jpeg|jpe|bmp|webp))\"[^>]*>/i";

保存,然后重新启用主题,清空缓存编译,前台刷新,一切回归正常~~~

PS:主题模板均已修复请等待更新。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 完整版代码如下:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档