WordPress の Tips。
wp_enqueue_script でも defer が使えるようにするには、clean_url で js が付くURLを書き換えちゃえば良い。
jQueryも非同期に読み込んじゃうと動かないので、そこだけフィルタリングしてる。
function add_defer_to_enqueue_script( $url ) {
if ( FALSE === strpos( $url, '.js' ) ) return $url;
if ( strpos( $url, 'jquery.js' ) ) return $url;
return "$url' defer='defer";
}
add_filter( 'clean_url', 'add_defer_to_enqueue_script', 11, 1 );