patric-boehner
8/27/2015 - 10:47 AM

Add Defer and Async Attributes to Render Blocking Javascript in WordPress

Add Defer and Async Attributes to Render Blocking Javascript in WordPress

<?php

function defer_js_async($tag){

  // scripts to defer.
  $scripts_to_defer = array('script-name1.js', 'script-name2.js', 'script-name3.js');
  // scripts to async.
  $scripts_to_async = array('script-name1.js', 'script-name2.js', 'script-name3.js');
 
  foreach($scripts_to_defer as $defer_script){
  	if(true == strpos($tag, $defer_script ) )
  	return str_replace( ' src', ' defer="defer" src', $tag );	
  }

  foreach($scripts_to_async as $async_script){
  	if(true == strpos($tag, $async_script ) )
  	return str_replace( ' src', ' async="async" src', $tag );	
  }
  return $tag;
}
add_filter( 'script_loader_tag', 'defer_js_async', 10 );

?>