web-dev-qa-db-fra.com

Reporter tous les js sauf certains dans le fichier functions.php

J'ai lu Comment ajouter la balise defer = "defer" dans les javascripts de plugins? et le code @toscho posted fonctionne bien pour différer certains fichiers js ou différer TOUS les fichiers js en commentant la ligne contact-form-7, mais je dois différer tous les fichiers js sauf 1 ou 2. Il est certain que j’ai besoin d’exclure jquery.min car cela provoque l’arrêt du plug-in Revolution Slider lorsqu'il est différé.

Alors, comment pourrais-je écrire une condition dans le code suivant pour exclure certains fichiers js? Par exemple, si je voulais exclure jquery.min et jquery.ui.core.min

function add_defer_to_cf7( $url )
    {
        if ( // comment the following line out add 'defer' to all scripts
        FALSE === strpos( $url, 'contact-form-7' ) or
        FALSE === strpos( $url, '.js' )
        )
        { // not our file
            return $url;
        }
        // Must be a ', not "!
        return "$url' defer='defer";
    }
    add_filter( 'clean_url', 'add_defer_to_cf7', 11, 1 );
2
Nate M.

Je suppose que vous essayez de définir différer pour chaque JS exclure jquery.min et jquery.ui.core.min.

Sur la base de cela, j'ai apporté des modifications à votre code et cela va définir différer pour tous les fichiers JS exclure les fichiers d'exemple donnés jquery.min et jquery.ui.core.min.

function add_defer_to_cf7( $url )
{
    //If  not js file OR js file with 'jquery.ui.core.min' OR 'jquery.min' name string, then no need to apply defer
    if(FALSE === strpos( $url, '.js') || ((strpos( $url, 'jquery.ui.core.min') > 0) || (strpos($url, 'jquery.min') > 0))){ 
        return $url;
    }
    else{
        //set defer for .js files
        return "$url' defer='defer";        
    }
}
add_filter( 'clean_url', 'add_defer_to_cf7', 11, 1 );

Ci-dessus, définissez defer = 'différer' pour tous les JS, à l'exception de 'jquery.ui.core.min' et de 'jquery.min'. Bonne chance!

Merci!

J'utilise ce code, j'espère que cela vous aidera.

function defer_parsing_of_js ( $url ) {
    if ( FALSE === strpos( $url, '.js' ) ) return $url;
    if ( strpos( $url, 'jquery.min.js' ) ) return $url;
    return "$url' defer='defer";
  }
add_filter( 'clean_url', 'defer_parsing_of_js', 11, 1 );
1
Gixty