質問: strpos( $url, '.js' ) ) return $url; //.js以外は対象外 if ( strpos( $url, 'jquery.min.js' ) ) return $url; //'jquery.min.js'は、asyc対象外 return "$url' async charset='UTF-8"; // async属性を付与 } add_filter( 'clean_url', 'add_async_to_enqueue_script', 11, 1 ); } ### 試したこと 上に記載してしまいました。 ### 補足情報(FW/ツールのバージョンなど) 初心者で恐る恐るコードをいじって、失敗しての繰り返しです・・・アドバイスをお願いします、
回答: 質問にあるコード自体は ・管理画面では除外 ・.js以外は対象外 ・jquery.min.jsは、async対象外 という条件に該当しないスクリプトにはすべてasync属性を追加しなさいというものになっています。結構ものぐささん用のコードとなっています(笑)。 質問からレンダリングをブロック・・・という言葉がどうも理解されていないようですがどうでしょうか? ざっくり説明すると質問に出てくる「async」はスクリプトは後から読み込んでねという意味で、「defer」は後から読み込むことにして一旦無視しましょ!という属性になります(本当にざっくりした説明です) スクリプトの中にはこうした属性を指定しなくてもフッターに入れて読み込ませて動作するものもありますし、ヘッダーに入れてこれらの属性を付加いないと動作しないものもあり、属性を付加すると動作しないものもあります。 要するにそのスクリプトによる・・というところが大きいのです。特にブログパーツやブログランキング、広告コードなど外部へ接続して外部にあるスクリプトを動作するものについては1つ1つ確認しないといけません。 functions.phpへ追記した質問のコードを一旦やめて、ヘッダーに入れているものやブログパーツのようにこれを張り付ければ・・・となっているコードの ```