web-dev-qa-db-ja.com

エンキューされたすべてのスクリプトの$ハンドルを取得する方法

キューに入れられた各スクリプトの$ハンドルを取得する方法はありますか?

すべてのハンドルを保持し、ループして各$ハンドルを使用して何かを実行できるようにする配列はありますか。

15
trusktr

$wp_scriptsグローバルはすべてのスクリプトデータを保持します。

function wpa54064_inspect_scripts() {
    global $wp_scripts;
    foreach( $wp_scripts->queue as $handle ) :
        echo $handle;
    endforeach;
}
add_action( 'wp_print_scripts', 'wpa54064_inspect_scripts' );
23
Milo

キューに入れられた各スクリプトの$ハンドルを取得する方法はありますか?

あなたは特定のフックで$wp_scripts->queueを調べることを試みることができました、しかしそれはあなたにそれを信じないか、WordPressによって使用されるすべてのハンドルのリストを与えません。

例えば、WP v4.7.5の中の21のテーマのためのwp_headのリストを取得するためにwp_print_scriptsアクションを実行する$handlesにフックできます:

function get_enqueued_scripts () {
    $scripts = wp_scripts();
    var_dump( array_keys( $scripts->groups ) );
}

add_action( 'wp_head', 'get_enqueued_scripts' );

そして$handlesからの$wp_scripts->groupsのリストは出力するでしょう:

enter image description here 

この時点で$wp_scripts->queueに存在するものを比較しようとすると、上記のサブセットしか表示されません。

したがって、wp_print_scripts でさえも ではありません - 上に示したようにハンドルの完全なリストを提供しているのであれば、それがあなたの望むことです。そして、それらを得るためにグループ化された依存関係に常に頼ることは不可能です。

1
Josh Habdas