WordPress主题function.php调用wp_enqueue_script引入jQuery失效求助
问题排查与修复方案
1. 核心错误:wp_enqueue_script参数顺序错误
你当前写法把版本号错误放进了依赖数组,wp_enqueue_script的正确参数顺序为:句柄, 资源路径, 依赖数组, 版本号, 是否加载到页脚。你原代码中的array ( 'jquery', '3.3.2')会被识别为「依赖jquery和名为3.3.2的脚本」,显然不存在3.3.2这个脚本句柄,导致依赖校验失败,你的custom.js不会被加载。
修正后的functions.php代码如下:
//Enqueue Child Styles & Scripts on the Front-End add_action('wp_enqueue_scripts', function(){ wp_enqueue_style('nebula-child'); //Stylesheets wp_enqueue_script('nebula-main'); //Scripts // 修正参数:依赖数组仅保留jquery,版本号放到第四个参数位 wp_enqueue_script( 'custom', get_stylesheet_directory_uri() . '/assets/js/custom.js', array( 'jquery' ), '3.3.2', true); }, 327);
2. 其他常规排查项
- 确认文件路径正确性:检查子主题根目录下是否存在
/assets/js/custom.js文件,Linux服务器对文件名、文件夹名大小写敏感,注意不要出现拼写/大小写错误 - 检查浏览器控制台报错:打开页面按下F12切换到控制台,查看是否有
custom.js 404、jQuery未定义类报错:- 出现404说明路径填写错误,可自行打印
get_stylesheet_directory_uri()的输出核对路径 - 出现jQuery未定义说明主题/其他插件禁用了WordPress自带jQuery,需要额外补加载jQuery的逻辑
- 出现404说明路径填写错误,可自行打印
- 调整钩子优先级:如果修改参数后仍不生效,可尝试将钩子优先级327改为10(默认优先级),避免被其他更高优先级的函数覆盖脚本加载逻辑
3. 验证方法
修复后刷新页面,浏览器控制台如果输出ready!说明集成已经生效。
内容的提问来源于stack exchange,提问作者Mr.Black
相关产品推荐
相关产品推荐

