web-dev-qa-db-ja.com

Functions.phpファイル内の特定のもの以外のすべてのjsを延期する

私は読みます どのようにプラグインのJavaScriptでdefer = "defer"タグを追加するのですか? そして@toschoが投稿したコードはcontact-form-7行をコメントアウトすることで特定のjsファイルを延期したり、すべてのjsファイルを延期するのに適していますが、1または2以外のすべてのjsを延期する必要があります。 jquery.minを除外する必要があるため、Revolution Sliderプラグインが機能しなくなります。

それでは、特定のjsファイルを除外するには、次のコードにどのように条件を記述すればよいでしょうか。たとえば、jquery.minと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.

私はあなたがすべてのJS除外jquery.minとjquery.ui.core.minを延期しようとしていると思います。

それに基づいて、私はあなたのコードにいくつかの変更を加えました、そして、これは与えられた例ファイルjquery.minとjquery.ui.core.minを与えられたすべてのJS除外のために延期されるでしょう。

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

上記のコードセット 'jquery.ui.core.min'と 'jquery.min'を除くすべてのJSに対してdefer = 'defer'が設定されています。がんばろう!

ありがとうございます。

私はこのコードを使っています。

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