繁体   English   中英

WordPress JQuery没有为插件运行

[英]Wordpress JQuery not running for plugins

无论我做什么,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');

但这返回以下错误

未捕获的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

因此,您无需手动排队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上进入入队过程以加载自己的脚本。

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

此处找到如何使用wp_enqueue_script的资源

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');

尝试添加

define('CONCATENATE_SCRIPTS', false);

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM