我对我的函数中的这个命令感到困惑。php文件:
function Remove_JQuery_Migrate( &$scripts) {
if(!is_admin()) {
$scripts->remove( \'jquery\');
$scripts->add( \'jquery\', false, array( \'jquery-core\' ), \'3.2.1\' );
}
}
add_filter( \'wp_default_scripts\', \'Remove_JQuery_Migrate\' );
我知道这会在我的整个网站上加载JQuery,但奇怪的是,如果我更改JQuery的版本,它不会更新。
如果我更改任何其他版本。css或。js文件,强制更新,但不会更新JQuery的版本。
我反复尝试清除缓存(我使用CloudFlare、maxCDN和W3TC),但没有任何乐趣。
有人知道我怎么解决这个问题吗?
我的客户面临的问题是,如果你点击我的网站并选择任何事件,你会注意到下拉列表不起作用。
https://infosec-conferences.com/
开发人员控制台显示错误:
Uncaught TypeError: $ is not a function
我确信这个错误是因为JQuery没有被正确调用。。。
我该怎么办?
SO网友:Jacob Peattie
我知道这会在我的整个网站上加载JQuery,但奇怪的是,如果我更改JQuery的版本,它不会更新。
这并不奇怪。您不能通过更改version参数来加载jQuery的任意版本。从documentation for wp_enqueue_script()
, 该版本号为:
字符串,指定脚本版本号(如果有),该版本号作为查询字符串添加到URL中,用于缓存破坏。如果版本设置为false,则会自动添加与当前安装的WordPress版本相同的版本号。如果设置为null,则不添加任何版本。
因此,这只是为了告诉WordPress要将哪个版本号附加到URL。如果你正在加载一个已经注册的脚本,它只会加载与WordPress捆绑的版本(当前1.12.4
).
但是您的问题与正在加载的jQuery版本无关。问题是WordPress以“无冲突”模式运行jQuery。这只意味着jQuery没有分配给$
. 相反,您需要使用jQuery
. 因此,如果您在WordPress中运行jQuery代码,您需要替换$
具有jQuery
, 或用以下方式包装代码:
(function($) {
// Your code here
})(jQuery)
这将使jQuery作为
$
为您的代码。