Wordpress JQuery没有运行插件

时间:2018-02-20 12:28:05

标签: javascript php jquery wordpress

无论我做什么,JQuery都无法在我的wordpress网站上正常运行!

注意 - 这是我的第一个wordpress网站

我已经尝试了现在似乎所有的东西,但我无法在我的wordpress网站上正常运行jQuery。

我尝试删除默认的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');

但是这会返回以下错误

  

未捕获的TypeError:jQuery.ajax不是函数/ jquery-3.3.1.min.js   未捕获的TypeError:jQuery.ajax不是函数/ 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加载,在源代码中可以查看并且没有错误,但是一旦插件尝试访问它,它就会抛出错误

  

未捕获的ReferenceError:未定义jQuery

3 个答案:

答案 0 :(得分:1)

所以有些事情,你不必手动排队jquery,因为你可以将它作为参数传递给其他查询。如果你看下面的例子,wp_enqueue_script函数有3个参数。 ('文件名','目录','要在此之前加载的脚本数组')。

wp_enqueue_script('semantic.min.js', '/wp-content/plugins/ct-plugin/js/semantic.min.js', array('jquery'));

另一件事是,在wordpress中你无法使用$简写为jQuery,你必须在脚本中键入jQuery()才能正确加载。也许如果你能提供你试图运行的脚本的一些上下文,它将有助于我们更好地诊断。

我的最后一个想法是,当加载插件时,你不会调用一个函数来加载它们将你的值排入队列。请参阅下面的代码,了解如何在wordpress上挂入enqueue进程以加载自己的脚本。

//Create the action to enqueue the admin scripts add_action('admin_enqueue_scripts', 'admin_scripts');

如何使用wp_enqueue_script找到here

的资源

答案 1 :(得分:0)

function my_amazing_scripts() {
    wp_enqueue_script('my-great-script', plugin_dir_url( __FILE__ ).'/js/your-amazing-jquery.js', array('jquery'), '3.3.1', true);
}
add_action('wp_enqueue_scripts', 'my_amazing_scripts');

答案 2 :(得分:0)

尝试添加

define('CONCATENATE_SCRIPTS', false);

在你的wp-config.php文件中。

然而,这可能更像是一个调试工具,以帮助您隔离问题,而不是“解决”问题。它。 我认为你的问题是由插件引起的。请禁用所有插件并删除在代码中手动添加jQuery的任何方法,然后重试。