0

does anyone know how to defer parsing for javascript files in functions.php??

This is what I have in my functions.php.

Thank you!

add_action( 'wp_enqueue_scripts', 'my_enqueue_assets' );
function my_enqueue_assets() {

    wp_enqueue_style( 'extra-style', get_stylesheet_directory_uri() . '/css/extra.css' );
    wp_enqueue_script( 'my-script', get_template_directory_uri() . '/js/scripts.js' );
    wp_enqueue_script( 'my-jquery', get_template_directory_uri() . '/js/jquery.js' );
    wp_enqueue_style( 'slicktheme', get_stylesheet_directory_uri() . '/slick-theme.css' );
    wp_enqueue_style( 'slickcss', get_stylesheet_directory_uri() . '/slick.css' );
    wp_enqueue_script( 'slick-jquery-min', get_template_directory_uri() . '/js/slick.min.js' );
    wp_enqueue_script( 'extra-js', get_template_directory_uri() . '/js/script.js' );

}
mgonz
  • 45
  • 1
  • 8
  • Does this answer your question? [How do I defer or async this WordPress javascript snippet to load lastly for faster page load times?](https://stackoverflow.com/questions/18944027/how-do-i-defer-or-async-this-wordpress-javascript-snippet-to-load-lastly-for-fas) – beatnik Oct 21 '20 at 14:00

1 Answers1

0

Add this code in function.php file This code add the defer attribute to your JavaScript files

function defer_parsing_of_js( $url ) {
    if ( is_user_logged_in() ) return $url; //don't break WP Admin
    if ( FALSE === strpos( $url, '.js' ) ) return $url;
    if ( strpos( $url, 'jquery.js' ) ) return $url;
    return str_replace( ' src', ' defer src', $url );
}
add_filter( 'script_loader_tag', 'defer_parsing_of_js', 10 );