我使用以下代码从google CDN加载JQuery:
wp_deregister_script(\'jquery\');
wp_register_script(
\'jquery\', // handle - WP uses this name to refer to script
\'http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js\',
array(), // Array of handles representing scripts that this one depends on.
false, // Version number - defaults to false.
false // false = put script in header, true = put in footer
);
wp_enqueue_script(\'jquery\');
在firebug中,我看到wordpress附加了“?ver=3.0.4\'到URL以控制缓存。事实上,似乎没有任何方法可以阻止WP追加
something 到URL-我可以在调用wp\\u register\\u script()时提供自己的字符串,但如果我将其留空(或“false”),wp将使用默认的“ver=3.0.4”)
我相信附加的版本字符串会阻止用户的浏览器重新使用可能从different 网站E、 g。
用户访问www.example。com加载ajax。古格里皮斯。com/ajax/libs/jquery/1.4.4/jquery。因此它现在位于浏览器缓存中然后,用户访问我的加载ajax的站点。古格里皮斯。com/ajax/libs/jquery/1.4.4/jquery。min.js?版本=3.0.4由于URL不同,用户浏览器不使用其缓存副本既然跨站点缓存是我想使用谷歌CDN的主要原因之一,那么除了手动加载脚本(不理想)或破解WP core之外,还有其他解决方案吗?
TIA公司
/Eoin/
SO网友:Eoin Kelly
感谢大家的回复。最后,这是我使用的代码(为了将来的搜索者,在这里发布):
function control_wp_url_versioning($src)
{
// $src is the URL that WP has generated for the script or stlye you added
// with wp_enqueue_script() or wp_enqueue_style(). This function currently
// removes the version string off *all* scripts. If you need to do something
// different, then you should do it here.
$src = remove_query_arg( \'ver\', $src );
return $src;
}
// The default script priority is 10. We load these filters with priority 15 to
// ensure they are run *after* all the default filters have run.
add_filter(\'script_loader_src\', \'control_wp_url_versioning\', 15);
add_filter(\'style_loader_src\', \'control_wp_url_versioning\', 15);