我使用此代码禁用wordpress默认jquery并从Google库加载,以加快网站速度并减少此大文件的延迟。
但在这里,我想让它延迟或异步加载,那么我们如何才能做到这一点呢?
下面是我在函数中使用的代码。php文件:-
//Making jQuery to load from Google Library
function replace_jquery() {
if (!is_admin()) {
// comment out the next two lines to load the local copy of jQuery
wp_deregister_script(\'jquery\');
wp_register_script(\'jquery\', \'http://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js\', false, \'1.11.3\');
wp_enqueue_script(\'jquery\');
}
}
add_action(\'init\', \'replace_jquery\');
我在我的
functions.php
, 但它不起作用:
add_filter( \'script_loader_tag\', function ( $tag, $handle ) {
if ( \'jquery/1.11.3/jquery.min.js\' !== $handle )
return $tag;
return str_replace( \' src\', \' async="async" src\', $tag );
}, 10, 2 );
SO网友:jgraup
使用script_loader_tag
在打印前修改HTML。
apply_filters( \'script_loader_tag\', string $tag, string $handle, string $src )
<人力资源>
add_action( \'init\', \'replace_jquery_src\' );
/**
* Modify loaded scripts
*/
function replace_jquery_src() {
if ( ! is_admin() ) {
// Remove the default jQuery
wp_deregister_script( \'jquery\' );
// Register our own under \'jquery\' and enqueue it
wp_register_script( \'jquery\', \'http://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js\', false, \'1.11.3\' );
wp_enqueue_script( \'jquery\' );
}
}
add_filter( \'script_loader_tag\', \'add_async_to_jquery\', 10, 3 );
/**
* Filter script tag output
*
* @param string $tag HTML output
* @param string $handle registered name
* @param string $src path to JS file
*
* @return string
*/
function add_async_to_jquery( $tag, $handle, $src ) {
// Check for our registered handle and add async
if ( \'jquery\' === $handle ) {
return str_replace( \' src=\', \' async src=\', $tag );
}
// Allow all other tags to pass
return $tag;
}