有一个插件使用简码加载到页面上,它使用自己的jquery版本,主题使用自己的,结果,插件在较新版本的jquery上不起作用,我该如何解决这个问题不放弃新版 jquery
现在在文件functions.php
中,连接看起来像这样
wp_enqueue_script( 'test-themes-jquery', get_template_directory_uri() . '/js/jquery-3.3.1.min.js', array(), '3.3.1', true );
有一个插件使用简码加载到页面上,它使用自己的jquery版本,主题使用自己的,结果,插件在较新版本的jquery上不起作用,我该如何解决这个问题不放弃新版 jquery
现在在文件functions.php
中,连接看起来像这样
wp_enqueue_script( 'test-themes-jquery', get_template_directory_uri() . '/js/jquery-3.3.1.min.js', array(), '3.3.1', true );
包括最新版本以及jquery-migrate插件(如果您的模板中的版本不是很古老,并且它可以与 jQuery 1.12.x 一起使用)
使用
jQuery.noConflict()
. 如果您在一个单独的文件中有新版本jQuery的脚本(或者文件和内联插入的数量很少),这很容易做到。为此,在使用jQuery 3的文件末尾(或在加载 jQuery3 后立即插入)您需要编写jq3 = jQuery.noConflict();
(您自己选择变量名)然后包装所有脚本(这就是为什么此方法仅适用于少量,如果你有像 opencart 这样的插入 - 这种方法不好)并插入(function($) { ... })(jq3));
正确的方法(但并不总是最好的):使用更新指南并将所有脚本重写为最新版本。当然,这听起来很疯狂,但如果主题的脚本是由有头脑的人编写的(而不是 <1.7 的版本),将会有一些模板替换。