You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress插件调用内置jQuery报错“$ is not a function”如何解决?

解决WordPress内置jQuery的"$ is not a function"错误

你遇到的问题核心原因是WordPress默认加载的jQuery处于无冲突模式——为了避免和其他JS库的$别名冲突,WordPress自动禁用了$作为jQuery的简写,必须用完整的jQuery标识符调用。和版本差异关系不大,先解决这个别名问题:

方法1:替换所有$为jQuery

直接修改你的aicontentgenerator.js代码,把所有$替换成jQuery。示例:

// 原代码
$(document).ready(function() {
    $('.aicontent-btn').click(function() {
        // 业务逻辑
    });
});

// 修改后
jQuery(document).ready(function() {
    jQuery('.aicontent-btn').click(function() {
        // 业务逻辑
    });
});

方法2:用自执行函数重新映射$

如果不想大面积替换代码,可以在JS文件最外层包裹一个自执行匿名函数,把jQuery作为参数传入并命名为$,函数内部就能正常使用$:

(function($) {
    // 此区域内可正常用$代替jQuery
    $(document).ready(function() {
        $('.aicontent-btn').click(function() {
            // 业务逻辑
        });
    });
})(jQuery);

方法3:确保脚本依赖正确加载

检查你插件脚本的注册/加载代码,必须把jquery声明为依赖,这样WordPress会保证先加载jQuery,再加载你的插件脚本,避免时序问题:

// 替换原来单独加载jquery的代码,直接注册插件脚本并声明依赖
wp_enqueue_script(
    'aicontentgenerator-script',
    $my_plugin_dir . '/js/aicontentgenerator.js',
    array('jquery'), // 声明依赖jquery
    '6.1.1', // 版本号,与插件版本对应即可
    true // 放在footer加载,和你之前的设置保持一致
);

如果解决完$的问题后仍有版本兼容错误(比如某些jQuery 3.x方法在WordPress内置版本中不存在),可以:

  • 修改代码兼容WordPress内置的jQuery版本(推荐,符合官方规范)
  • 启用WordPress自带的jQuery Migrate插件(后台插件安装页面搜索启用,用于兼容旧版jQuery语法)

内容的提问来源于stack exchange,提问作者Berk Birkan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 01:32:00