如何阻止WordPress Astra主题Lightbox控件及图片标题自动隐藏?
解决Astra主题Lightbox标题和控件始终可见的问题
先确认Lightbox来源
Astra免费版默认不带Lightbox功能,你看到的大概率是WordPress 5.9+核心自带的Block Editor Lightbox,或者是Astra Pro扩展里的Lightbox模块(属于主题内置扩展,不会显示在插件列表)。可以通过以下方式确认:
- 查看Astra后台「外观」>「Astra选项」>「扩展」,看是否启用了Lightbox模块;
- 打开页面源代码,搜索
wp-lightbox(核心Lightbox)或astra-lightbox(Astra扩展)关键词。
解决方案
方法1:自定义CSS(最简单有效)
通过CSS强制让标题和控件保持可见,无需修改核心代码:
- 进入WordPress后台「外观」>「自定义」>「额外CSS」;
- 粘贴对应代码,保存后刷新前端测试:
/* 针对WordPress核心Lightbox */ .wp-lightbox-container .wp-lightbox-controls, .wp-lightbox-container .wp-lightbox-caption { opacity: 1 !important; visibility: visible !important; pointer-events: auto !important; } /* 针对Astra Pro内置Lightbox */ .astra-lightbox .lightbox-controls, .astra-lightbox .lightbox-caption { opacity: 1 !important; visibility: visible !important; pointer-events: auto !important; }
如果代码无效,按F12打开浏览器开发者工具,选中Lightbox的标题/控件元素,查看其CSS类名,替换上述代码中的类名即可。
方法2:阻止JS自动隐藏(CSS无效时用)
如果是JS定时器控制的自动隐藏,需要添加自定义JS清除定时器:
- 安装并激活「代码片段」插件(WordPress官方推荐的安全代码管理工具);
- 新建代码片段,选择「仅在前端运行」,粘贴以下代码:
document.addEventListener('DOMContentLoaded', function() { // 监听Lightbox打开事件 document.addEventListener('wp-lightbox-open', function() { const controls = document.querySelector('.wp-lightbox-controls'); const caption = document.querySelector('.wp-lightbox-caption'); if (controls) { controls.style.opacity = '1'; controls.style.visibility = 'visible'; clearTimeout(controls.dataset.hideTimeout); } if (caption) { caption.style.opacity = '1'; caption.style.visibility = 'visible'; clearTimeout(caption.dataset.hideTimeout); } }); });
如果是Astra扩展的Lightbox,替换事件名和选择器为astra-lightbox-open和对应的控件/标题类名。
内容的提问来源于stack exchange,提问作者BBLJ84
相关产品推荐
相关产品推荐

