为什么我的WordPress要加载旧版本的JQuery?

时间:2017-11-01 作者:Grey Lover

嗨,我正在尝试将引导javascript文件排队。但这取决于JQuery和Popper。js。因此,我从CDN加载PopperJ,我提到JQuery和PopperJ都是引导程序队列的依赖项。我并没有将JQuery排入队列,因为如果您知道Wordpress将加载它,只要您将其作为依赖项提及即可。如下所示:-

wp_enqueue_script( \'popper\', \'https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.3/umd/popper.min.js\', array(), null, true );
wp_enqueue_script( \'bootstrap\', \'https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js\', array(\'jquery\', \'popper\'), null, true );
然而,当我查看Wordpress站点的源代码时,我看到加载的JQuery版本是1.12.4。目前稳定的版本是3.2.1。那么,我该如何纠正这个问题呢。我应该把JQuery文件保存到服务器并单独排队吗?

2 个回复
SO网友:S. Coll

出于浏览器兼容性的目的,WP core使用较旧版本的jQuery,因为支持较旧的浏览器是其任务的一部分。

有许多方法可以将jQuery包含在WP项目中并管理其版本。最简单的方法是按照您的建议将脚本排队,并根据需要手动更新脚本,但您可以毫无困难地设置包管理器(如Bower或npm Browserify)来自动化版本控制过程。参见示例https://generatewp.com/automation-wordpress-practical-guide/

SO网友:David Lee

它的制作是为了向后兼容浏览器,如果您想要最新版本的Jquery,您需要取消注册脚本并将其注册到新源,您可以使用CDN或像您所说的那样保存文件,请记住jquery 脚本只是要加载的别名,jquery-corejquery-migrate:

object(_WP_Dependency)#329 (6) {
  ["handle"]=>
  string(6) "jquery"
  ["src"]=>
  bool(false)
  ["deps"]=>
  array(2) {
    [0]=>
    string(11) "jquery-core"
    [1]=>
    string(14) "jquery-migrate"
  }
  ["ver"]=>
  string(6) "1.12.4"
  ["args"]=>
  NULL
  ["extra"]=>
  array(0) {
  }
}
因此,您必须:

wp_deregister_script(\'jquery\'); //because its a Core-Registered Script
wp_register_script(\'jquery\', \'THE PATH TO THE FILE\', array(), \'\', FALSE);
这将与正在使用的任何插件/主题兼容jqueryjquery-core 作为依赖项。

结束

相关推荐

使用jQuery有条件地隐藏快速编辑中的元素

我想使用jQuery根据另一个分类法的复选框状态,有条件地从快速编辑框中隐藏一些分类法。我有一家WooCommerce进口商店。根据产品类别分类法,产品分为两个基本分组:产品类别时尚食品但根据产品类别,每种产品都有一系列不同的分类:原产国-时尚;食品时尚品牌时尚食品时尚类别时尚食品时尚季节时尚性别时尚鉴于这是相当多的分类法,我决定隐藏分类法,仅根据产品类别分类法中是否单击食品或时尚来显示分类法。这对于产品编辑管理屏幕非常有用。我将要隐藏的分类法元框的css设置为不显示,并为它们创建了一个经过修改的css类