web-dev-qa-db-ja.com

`wp_print_scripts`をキャンセルするには?

$wp_scriptsイベントの後に、私自身のJS関数を使ってwindow.onload内のすべてのスクリプトをロードしたいです。自分のコードで置き換えることができるように、wp_print_scriptsがデフォルトの<script>タグのリストを表示しないようにする簡単な方法はありますか?

1
Rafi

方法はありますが、キューに入れられたスクリプトに他のインラインスクリプトが添付されている可能性があるのでお勧めできません。次のようにして、wp_enqueue_scriptsアクションにフックし、グローバルな$wp_scriptsを空にすることができます。

add_action( 'wp_enqueue_scripts', 'remove_all_scripts', 1000 );
function remove_all_scripts() {
    global $wp_scripts;
    $wp_scripts->queue = array();
}

その後、ループを実行して、必要に応じてそれをエンキューできます。

3
Jack Johansson