故障表现
升级主题后部分插件失效,控制台提示 $ is not a function。
问题出在哪
主题移除了内置 jQuery 或改用精简版,插件的依赖声明没跟着变。判断时先分清是 jQuery 版本冲突 本身的配置问题,还是上游调用、运行环境带进来的差异;前者改配置就能收口,后者要沿着请求链路一层层往上找,处理顺序不能颠倒。先在出问题的机器上复现一次,把报错原文和发生时间记下来,再对着日志定位。
按这个顺序处理
- 让主题重新注册完整 jQuery
- 把插件依赖写进入队参数
- 避免在页头提前加载
对应的命令或配置片段如下,可直接复制:
wp_enqueue_script('jquery');
wp_enqueue_script('my-plugin', $url, ['jquery'], '1.0', true);
改完只在一台机器上验证不够,至少从外网和移动网络各试一次,才能确认不是本地缓存造成的假象。不要一次改多个参数,每次只动一处并记录下来,否则现象变了也说不清是哪个改动起的作用。
怎么确认改好了
控制台报错消失,插件功能恢复。