WordPress引入的JavaScript不生效,是否是脚本挂载链接方式有误?
错误排查与修复方案
你给出的function.php代码存在两处直接导致JS不生效的问题:
1. 资源路径拼写错误
引入app.js时,get_template_directory_uri()返回的路径末尾默认不带斜杠,你拼接路径时漏了前置斜杠,会导致最终生成的资源地址错误:
// 原错误写法 wp_enqueue_script( 'maxprofessional-javascript', get_template_directory_uri() . 'js/app.js' ); // 修复后写法 wp_enqueue_script( 'maxprofessional-javascript', get_template_directory_uri() . '/js/app.js', array(), _S_VERSION, true );
缺少斜杠会让路径拼接结果变为你的主题地址js/app.js,而非正确的你的主题地址/js/app.js,服务器自然找不到对应文件。
2. 缺少关键加载参数
原写法未设置三个必要的wp_enqueue_script参数:
- 依赖项数组:如果你的JS依赖jQuery等其他内置脚本,需要在数组中声明,例如依赖jQuery就写为
array('jquery') - 版本号:和主题其他资源统一使用
_S_VERSION即可,方便后续更新时清除浏览器缓存 - 页脚加载开关:最后一个参数设为
true会让脚本在页面DOM渲染完成后加载,避免你写的JS逻辑因为找不到DOM元素失效
附加提醒:你代码中出现的
&&是HTML转义后的格式,实际写入function.php时需要替换为正常的&&符号,否则会触发PHP语法错误。
修改完成后可以打开网站前端,右键查看页面源代码,搜索app.js确认生成的链接可以正常访问,同时打开浏览器控制台检查是否还有报错即可。
内容的提问来源于stack exchange,提问作者HZ Devs
相关产品推荐
相关产品推荐

