diff --git a/inc/theme-lightbox.php b/inc/theme-lightbox.php index e57d31b..542591a 100644 --- a/inc/theme-lightbox.php +++ b/inc/theme-lightbox.php @@ -357,8 +357,26 @@ function yang_lightbox_content($content) $img = $imgs->item(0); $imgHtml = $doc->saveHTML($img); - // 原图优先从附件 ID 取(最可靠),其次 href 自己 + /* 原图地址的三级兜底,顺序不能换: + * ① 附件 ID → full 尺寸(最可靠:多站点/子目录/换过原图都能对上) + * ② 自己带的 data-full / data-large-file / data-orig-file + * (很多插件会把原图塞在这些属性里,而 href 反而是缩略图) + * ③ 最后才是 href 本身 + * + * 🔴 ② 这一步不能省。有些站点的结构是 + * `` + * —— 三处都是缩略图、只有 data-full 里是真原图,且 img 没有 + * wp-image 类(编辑器之外插入的图常这样)。只做 ①③ 就会 + * 「点开还是那张小图」,用户会觉得灯箱没作用。 + * ⚠️ 取到的值必须再验一次「像不像图片」,否则某些插件会在 + * data-full 里放页面地址。 */ $full = yang_lightbox_full_url(yang_lightbox_attachment_id($imgHtml)); + if ($full === '') { + $cand = yang_lightbox_img_src($imgHtml); + if ($cand !== '' && yang_lightbox_is_image_url($cand)) { + $full = $cand; + } + } if ($full === '') { $full = $href; }