我成功地使用了google文件,而不是Wordpress内置的文件,我的functions.php中有以下代码:
function register_jquery() {
if (!is_admin()) {
wp_deregister_script('jquery-core');
wp_register_script('jquery-core', 'https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js', true, '2.2.0');
wp_enqueue_script('jquery-core');
wp_deregister_script('jquery-migrate');
wp_register_script('jquery-migrate', 'https://cdn.jsdelivr.net/jquery.migrate/1.2.1/jquery-migrate.min.js', true, '1.2.1');
wp_enqueue_script('jquery-migrate');
wp_deregister_script('jquery-ui');
wp_register_script('jquery-ui', 'https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js', true, '1.11.4');
wp_enqueue_script('jquery-ui');
}
}
add_action( 'wp_enqueue_scripts', 'register_jquery' );我认为,使用google的优点是google和库的客户端缓存。
如何更改代码以自动从谷歌加载最新的jQuery版本?
发布于 2016-02-28 16:07:36
这个问题的唯一好答案是不要这么做--就这么简单。
一般来说,软件期望某些东西能够正常工作,而不断发展的库可以使用breaking changes。这意味着更改将导致另一段软件停止正常工作,这可能限制了范围,或者破坏了页面上的所有JS。
谷歌没有latest目录。
版本: 2.2.0、2.1.4、2.1.3、2.1.1、2.1.0、2.0.3、2.0.2、2.0.1、2.0.0、1.12.0、1.11.3、1.11.2、1.11.1、1.11.0、1.10.2、1.10.1、1.10.0、1.9.1、1.9.0、1.8.3、1.8.21.8.1、1.8.0、1.7.2、1.7.1、1.7.0、1.6.4、1.6.3、1.6.2、1.6.1、1.6.0、1.5.2、1.5.1、1.5.0、1.4.4、1.4.3、1.4.2、1.4.1、1.4.0、1.3.2、1.3.1、1.3.0、1.2.61.2.3
但是您可以参考jQuery CDN - https://code.jquery.com/jquery-latest.min.js -尽管基于其后Don’t Use jquery-latest.js的jQuery非常不建议它。
本周早些时候,jQuery出现了一个问题,使得jQuerylatest.js和jQuerylatest.min.js文件在某些地理区域几个小时内不可用。(这不是CDN本身的问题,而是为CDN提供文件的存储库的问题。)虽然我们总是希望有100%的正常运行时间,这一特殊的停机强调了生产站点的数量遵循反模式使用这个文件。因此,让我们明确一点:不要在生产站点上使用jquery-latest.js。
虽然与您交谈的每个人都应该告诉您不要在生产中使用latest,但当您决定谨慎行事时,只需确保将您的方法与yolo联系起来。这可以确保任何看你代码的人都能立即认识到你是一个叛逆者,有时你必须打破你的网站来制作一些煎蛋饼。
不幸的是,或者幸运的是,取决于您与谁交谈,其余的库不能被latest引用。
function register_jquery_yolo() {
// FIXME: This conditional should be removed:
// if ( ! is_admin() ) {
wp_deregister_script( 'jquery-core' );
wp_register_script( 'jquery-core', 'https://code.jquery.com/jquery-latest.min.js', true, 'latest-yolo' );
wp_enqueue_script( 'jquery-core' );
wp_deregister_script( 'jquery-migrate' );
wp_register_script( 'jquery-migrate', 'https://cdn.jsdelivr.net/jquery.migrate/1.2.1/jquery-migrate.min.js', true, '1.2.1' );
wp_enqueue_script( 'jquery-migrate' );
wp_deregister_script( 'jquery-ui' );
wp_register_script( 'jquery-ui', 'https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js', true, '1.11.4' );
wp_enqueue_script( 'jquery-ui' );
// }
}
add_action( 'wp_enqueue_scripts', 'register_jquery_yolo' );我认为,使用google的优点是google和库的客户端缓存。
使用latest的一个大问题是,您实际上不想缓存该文件,因为url总是需要指向最新的文件。如果缓存的话,你还能从哪里得到最新的信息?
我还是不明白为什么还有人用if!is_admin()在使用wp_enqueue_scripts时。这是完全无用的,毫无目的--彼得?古森
正如有人指出的那样,在这种情况下不应该使用if ( ! is_admin() )。wp_enqueue_scripts用于前端脚本,admin_enqueue_scripts用于管理脚本,login_enqueue_scripts用于登录页面。
发布于 2016-02-28 15:59:27
第一:通常,正如注释中指出的那样,这对代码来说是个坏主意,因为事情会破裂。https://blog.jquery.com/2014/07/03/dont-use-jquery-latest-js/
第二:在Google中曾经有指向“最新”jQuery库的链接--即使用文件名jquery-latest.js --但没有更多链接:https://stackoverflow.com/questions/12608242/latest-jquery-version-on-googles-cdn。
我们知道http://code.jquery.com/jquery-latest.js被滥用是因为CDN统计数据显示它是最流行的文件。如果开发人员只使用它来制作本地副本,情况就不是这样了。我们已经决定停止更新这个文件,以及缩小的副本,将这两个文件永远保持在1.11.1版本。Google团队已经加入我们的行列,以防止无意中的网络破坏,不再更新http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js的文件。该文件也将锁定在1.11.1版本。
https://wordpress.stackexchange.com/questions/219171
复制相似问题