[网站修复]:Puock 主题 缩略图修改原图方案

19次阅读
没有评论

Puock 主题文章列表缩略图无法显示,报错 A TimThumb error has occured

「一、排查过程」

  1. 认识机制:缩略图由 pk_get_img_thumbnail_src() 生成,走 timthumb.php 实时抓图裁剪,而不是 WordPress 原生裁剪 core.php:367-377。
  2. 排除干扰项:伪静态未开启、白名单文件 .tas.php 位于主题目录(非网站根目录)、旧 COS 桶域名已通过重新保存后台设置刷新 core.php:852-888。
  3. 定位真因:用 curl -v 复现出 403 Forbidden(来自腾讯云 EdgeOne)。原因是 timthumb.php 服务端抓图时不带 Referer timthumb.php:1298-1310,而 EdgeOne 防盗链规则拦截了”无 Referer”请求——这也是为什么浏览器直接访问的图片正常,唯独经过 timthumb 中转的缩略图被拦。
  4. 额外发现:同域名图片会被 timthumb.php 误判为本地文件 timthumb.php:228-234,走另一条完全独立的失败路径(本地路径找不到文件)。
[网站修复]:Puock 主题 缩略图修改原图方案
修复后的缩略图

「二、结论与方案」

timthumb.php 链路牵扯 Nginx、PHP、COS、EdgeOne 多层系统,故障点太多。最终选择跳过 timthumb,直出原图:把 pk_get_img_thumbnail_src() 改为直接 return $src;,配合主题已有的 .thumbnail 容器(固定宽高 + overflow:hidden)+ CSS object-fit: cover 模拟裁剪效果 style.less:848-880。

「三、遗留风险」

该函数属于主题核心文件,主题自带自动更新会整包覆盖 functions.php:613-653,且无 function_exists() 保护无法用子主题覆盖,每次升级需手动重新打补丁。

正文完
 0
评论(没有评论)