如何解决Safari浏览器和某些WordPress插件不兼容的问题?

作者:袖梨 2026-07-05

Safari访问WordPress插件异常是因老旧插件硬编码UA检测或依赖Chrome专属API,需注释wp-o-matic.php中IE检测语句、启用JavaScript与弹窗权限、禁用内容拦截器,或替换为WP RSS Aggregator等现代插件。

当你在Mac或iOS设备上用Safari访问WordPress后台或前端页面时,发现WPRobot设置页弹出“Please switch to Firefox / Safari”提示、WP-o-Matic插件拒绝加载、或者某些管理功能按钮点击无响应,这通常不是浏览器故障,而是插件代码主动拦截了Safari UA字符串或依赖了Chrome专属API。

绕过插件对Safari的UA拦截

这类问题多见于老旧插件(如WP-o-Matic 1.0RC4),其PHP代码中硬编码检测MSIE,却错误地将Safari的User-Agent也判定为IE兼容模式。

第一步:通过FTP或主机文件管理器,定位到wp-content/plugins/wp-o-matic/wpomatic.php文件

第二步:打开该文件,搜索关键词die('Please switch to Firefox / Safari'),定位到第1079行附近的一段条件判断

第三步:将整段if语句注释掉——包括if (isset($_SERVER['HTTP_USER_AGENT']) && (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false))及其后紧跟的die(...)行,前后各加//符号

【关键前提】修改前必须备份原文件,否则插件升级会覆盖改动,且错误注释可能引发500报错

启用Safari必需的网页功能

部分WordPress插件前端依赖JavaScript高级特性或弹窗交互,而Safari默认策略会阻止它们运行。

打开Safari → “Safari浏览器” → “偏好设置” → “安全性” → 勾选“启用JavaScript”

点按“网站”标签 → 左侧选择“弹出式窗口” → 在当前WordPress站点右侧下拉菜单中选“允许”

点按左侧“内容拦截器” → 确保对应站点的下拉菜单是“关闭”,不是“阻止”或“自动”

若插件含Flash或旧版Java组件,【请放弃】Safari自2020年起已彻底移除对Flash的支持,任何依赖Flash的WordPress插件在Safari中必然失效

临时切换User-Agent骗过插件检测(仅调试用)

方法一:启用Safari开发者菜单 → 右键网页空白处 → “检查元素” → 按Cmd+Opt+R调出控制台 → 输入以下命令后回车:navigator.__defineGetter__('userAgent', () => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36')

方法二:安装Safari扩展“User Agent Switcher”,在WordPress后台页面右上角点击扩展图标 → 选择Chrome UA → 刷新页面

注意:此操作仅影响当前标签页,关闭即失效;生产环境切勿长期使用,可能触发CDN或安全插件的异常行为检测

替换不兼容插件的替代方案

WP-o-Matic类RSS采集插件已停止维护,直接替换为现代替代品更可靠:

安装WP RSS Aggregator:支持WebP图片自动转换、Safari原生Fetch API、无UA检测逻辑

启用Auto Post Scheduler:基于WordPress Cron而非客户端JS轮询,彻底规避浏览器兼容性层

若必须保留旧插件功能,可将WPRobot配置页导出为静态HTML,用Safari打开本地文件完成初始设置,后续仅在Chrome中维护

相关文章

精彩推荐