【发布时间】:2018-07-30 19:39:00
【问题描述】:
无论我做什么,JQuery 都无法在我的 wordpress 网站上正常运行!
注意 - 这是我的第一个 wordpress 网站
我已经尝试了现在似乎所有的东西,但我无法让 jQuery 在我的 wordpress 网站上正常运行。
我已尝试删除默认的 wordpress jquery 并使用
运行我自己的wp_deregister_script('jquery');
wp_register_script('jquery', get_stylesheet_directory_uri() . '/inc/jquery-3.3.1.min.js', false, '3.3.1', false);
wp_enqueue_script('jquery');
但这会返回以下错误
Uncaught TypeError: jQuery.ajax is not a function / jquery-3.3.1.min.js Uncaught TypeError: jQuery.ajax is not a function / front-end-deps.js
我尝试在页眉和页脚脚本之前先加载 jquery
wp_enqueue_script('jquery');
include(locate_template('inc/layout/header-layout.php'));
wp_head();
这消除了jQuery.ajax is not a function 错误,但是我安装的任何插件都找不到 jquery 并返回类似的错误
jQuery 没有定义
**我已在可能的情况下手动将 jquery 调用到wp_enqueue_script(),例如
wp_enqueue_script('my_script_name', array('jquery'));
这往往会修复它,但此选项不适用于所有插件。
我已经完全删除了我所有的手动 jQuery 调用,并尝试让 wordpress 默认这样做
这不会立即引发任何错误,直到插件尝试使用 Jquery,然后我得到
未捕获的 TypeError JQuery.ajax 不是函数
wordpress 包含 Jquery 的方式肯定应该让整个网站都可以访问它吗?
几件事需要注意,正如我所说,这是我的第一个 wordpress 网站,所以我不确定这些是否正常
- 当我检查网站并查看网站源时,没有 jquery。我假设它被编译并添加到'scripts.js'文件中?因为这是我的网站正在运行的唯一 javascript 文件。
- 当我运行
wp_enqueue_script('jquery')时,它实际上并没有对代码做任何事情。例如,如果我在标题中运行它,然后检查源代码,它不会添加 jquery 或任何东西。我认为wp_enqueue_script('jquery')应该在代码中添加 JQuery 是不是错了? - 我使用的一些无法找到 jQuery 的插件是 NinjaForms 和 SB Instagram(在我尝试提交表单之前,NinjaForms 不会显示任何错误,然后我会收到
jQuery.ajax is not a function)
我已经在整个互联网上搜索并尝试了我发现的大部分内容,据我所知,这不是一个重复的问题!
有人对我如何解决这个问题并解决它有任何想法吗?
编辑
我可以得到它,以便 JQuery 加载,在源代码中可见并且不会出错,但是一旦插件尝试访问它,它就会抛出错误
Uncaught ReferenceError: jQuery is not defined
【问题讨论】:
-
只使用
wp_enqueue_script('jquery')是不正确的方法。您应该使用操作wp_enqueue_scripts将您的脚本添加到 wordpress 队列 -
另外,
jquery默认加载到 wordpress 中。如果您没有删除它,请检查可能停用它的缓存/插件/主题 -
@SamvelAleqsanyan 你能解释一下你所说的缓存/插件/主题是什么意思吗?这是一个文件吗? wordpress 设置?
-
默认情况下(没有第三部分插件和主题的全新 wordpress 安装)加载
jquery库。如果它不在您的网站上,那么它可能会被手动/从某些插件/主题功能中删除。我猜不出您的网站包含哪些主题/插件。但尝试停用所有插件,并切换到一些默认主题(如二十七)。然后你会在你的页面上看到jquery -
也许发布您正在使用的插件列表?
标签: javascript php jquery wordpress