给轮播脚本声明依赖 ['jquery', 'swiper'],前台源码里连轮播的 script 标签都没有,控制台也没报错,只有轮播区域静止不动。碰到这种情况,我一般先确认改动有没有真的生效。
原因不复杂,依赖数组里的 handle 必须已经注册,未注册时 WordPress 认为依赖缺失,整条脚本不会输出,也不会给出提示。主题里 swiper 的注册顺序排在后面,同样会落空。
「wp_enqueue 依赖错误」这个问题文档写得含糊,实际行为以当前版本为准,别照旧版本的结论套。改完顺手把文档补一句,省得下次自己重新推一遍。
wp_register_script('swiper', get_theme_file_uri('/js/swiper.js'), [], '9.0', true);
wp_enqueue_script('slider', get_theme_file_uri('/js/slider.js'), ['jquery', 'swiper'], '1.0', true);
监控和日志的时间要对上,时区不一致会多绕很大一圈。临时改动用注释写上日期和原因,过两周自己都记不清为什么这么写。
动手前把原文件复制一份带时间戳,出问题立刻换回去,比现场分析快得多。
具体做法是,在 wp_enqueue_script 之前先用 wp_register_script 注册 swiper;依赖只写真实存在的 handle,不确定就先去掉逐个加回;用 wp_script_is 检查脚本是否真的进入队列。
最后用这个标准收尾,源码里出现 slider.js 和 swiper.js,轮播恢复自动切换。
