How to set defer or async attributes on enqueued script tags in WordPress

 

<?php
add_action( ‘wp_enqueue_scripts’, function () {
wp_register_script( ‘my-script’, get_stylesheet_directory_uri() . ‘/assets/js/my-script.js’ );
wp_enqueue_script( ‘my-script’ );
} );
add_filter( ‘script_loader_tag’, function ( $tag, $handle ) {
if ( ‘my-script’ !== $handle ) {
return $tag;
}
return str_replace( ‘ src’, ‘ defer src’, $tag ); // defer the script
//return str_replace( ‘ src’, ‘ async src’, $tag ); // OR async the script
//return str_replace( ‘ src’, ‘ async defer src’, $tag ); // OR do both!
}, 10, 2 );

Leave a Comment

Your email address will not be published. Required fields are marked *