如何解决从CDN中将两种不同类型的jQuery脚本放入Wordpress中
我试图将两个不同版本的jQuery放入wordpress的functions.php页面中,第一个是原始版本(我遵循了从头开始构建主题的教程)。
第二个应该使范围滑块能够与ajax一起使用(它正在jsfiddle中运行:https://jsfiddle.net/wcepbL45/1/,但是当嵌入到我的wordpress网站时不会触发。)
这是我在functions.php中拥有的
function include_jquery()
{
wp_deregister_script('jquery');
wp_enqueue_script('jquery',get_template_directory_uri() . '/js/jquery-3.1.3.min.js','',1,true);
// !
wp_enqueue_script( 'jquery','//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js',array( 'jquery' ));
// !
add_action('wp_enqueue_scripts','jquery');
}
add_action('wp_enqueue_scripts','include_jquery');
我要去哪里错了?加载两个不同的jQuery库是否有意义,或者版本3包含版本2?为什么范围滑块在我的wordpress中不触发?
谢谢!
解决方法
JQuery是一个javascript库,按照那里的描述,“ jQuery是一个快速,小型且功能丰富的JavaScript库。它使HTML文档的遍历和操作,事件处理,动画和Ajax等事情变得更加简单易用在多种浏览器中都可以使用的API。” ...简而言之,他们创建了一系列具有特定名称的函数,并将它们放置在文件中以使其变得更容易。>
您正在加载同一文件的2个版本(1个是最新版本,另一个是至少5至7年)。 您正在制造前所未有的冲突,并且使用这样的旧版本将自己暴露于潜在的恶意行为和安全漏洞。
编辑1:
然后回到您的问题并按照您的最后评论,您没有正确地使脚本入队:
function include_jquery()
{
wp_deregister_script('jquery');
wp_enqueue_script('jquery',get_template_directory_uri() . '/js/jquery-3.1.3.min.js','',1,true);
wp_enqueue_script( 'jquery','//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js',array( 'jquery' ));
add_action('wp_enqueue_scripts','jquery');
}
add_action('wp_enqueue_scripts','include_jquery');
这两个脚本都具有相同的句柄,一个函数内部有2个add动作,其中1个,并且其中一个对其自身具有依赖性,因此您几乎处于永无止境的循环中。
/**
* Theme scripts
*/
add_action( 'wp_enqueue_scripts','theme_scripts' );
function theme_scripts() {
if ( ! is_admin() ) {
/**
* Register then enqueue jquery js
*
* Check if CDN's url is valid,if not return fallback
*/
$test_jquery_js = @fopen( 'https://code.jquery.com/jquery-3.5.1.min.js','r' );
if ( $test_jquery_js !== false ) {
wp_register_script( 'jquery_js','//code.jquery.com/jquery-3.5.1.min.js' );
} else {
wp_register_script( 'jquery_js',get_template_directory_uri() . '/assets/js/jquery-3.5.1.min.js',array() );
};
wp_enqueue_script( 'jquery_js' );
};
};
这是排队脚本的正确方法。您可以了解有关wp_enqueue_script
@ https://developer.wordpress.org/reference/functions/wp_enqueue_script/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。