首页 > 解决方案 > 推迟在functions.php中解析javascript文件 - wp_enqueue_script

问题描述

有谁知道如何推迟对functions.php中的javascript文件的解析?

这就是我的functions.php 中的内容。

谢谢!

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' );

}

标签: javascriptphpjquerywordpressparsing

解决方案


在 function.php 文件中添加此代码 此代码将 defer 属性添加到您的 JavaScript 文件

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 );

推荐阅读