好吧,我试了一整天,不知道这是怎么回事。我有一个这样加载jquery的网站:
function my_script_loader() {
if (!is_admin()) { // only load for front end
//Clear jQuery if already registered
wp_deregister_script(\'jquery\');
wp_register_script(\'jquery\', "http" . ($_SERVER[\'SERVER_PORT\'] == 443 ? "s" : "") . "://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js", array(), \'1.11.1\', \'\',true);
wp_enqueue_script(\'jquery\');
} // End of if statement
} // End of Function
add_action(\'wp_enqueue_scripts\', \'my_script_loader\');
Dom中的预期结果是:
<script type="text/javascript" defer="defer" src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
然后,我在另一个子域网站上做了完全相同的事情:
function script_loader() {
if (!is_admin()) {
//Clear jQuery if already registered
wp_deregister_script(\'jquery\');
wp_register_script(\'jquery\', "http" . ($_SERVER[\'SERVER_PORT\'] == 443 ? "s" : "") . "://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js", array() , \'1.12.4\', \'\',true);
wp_enqueue_script(\'jquery\');
}
} // End of Function
add_action(\'wp_enqueue_scripts\', \'script_loader\');
Dom中的意外结果是:
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js?ver=1.12.4">
我已禁用插件并删除了所有脚本,但脚本不会延迟。怎么会这样?感谢您的关注。西奥
最合适的回答,由SO网友:iguanarama 整理而成
像Mark Kaplun 在评论中说,有些东西正在添加defer
到您的一个域的脚本。
如果希望子域jQuery脚本也具有defer
, 这应该可以做到:
function my_add_defer ($tag, $handle, $src) {
if ($handle == \'jquery\') {
return str_replace (\' src=\', \' defer="defer" src=\', $tag);
}
return $tag;
}
add_filter (\'script_loader_tag\', \'my_add_defer\', 10, 3);