发现了这个很棒的代码
function js_defer_attr( $tag ){
// add defer to all scripts tags
return str_replace( ' src', ' defer="defer" src', $tag );
}
add_filter( 'script_loader_tag', 'js_defer_attr', 10 );
有没有办法推迟除一个脚本之外的所有脚本?
我一直在尝试使用它,但我相信它会一直推迟加载脚本
Filter script_loader_tag 还有 $handle 参数,因此您可以将其添加到您的函数中并相应地检查它:
function js_defer_attr( $tag, $handle ) {
// add defer to all scripts tags except the evil one
if ( 'evil' !== $handle ) {
return str_replace( ' src', ' defer="defer" src', $tag );
}
return $tag;
}
add_filter( 'script_loader_tag', 'js_defer_attr', 10, 2 );