Bagaimana cara mendapatkan $ handle untuk semua skrip enqueued?


18

Apakah ada cara untuk mendapatkan $ handle untuk setiap skrip yang telah enqueued?

Apakah ada beberapa array yang menampung semua pegangan sehingga saya dapat mengulanginya dan melakukan sesuatu menggunakan setiap $ pegangan?

Jawaban:


25

yang $wp_scriptsglobal yang memegang semua data skrip:

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

5
Pada WP 4.2.0 - $wp_scripts = wp_scripts();mungkin lebih baik daripada mengakses global secara langsung karena akan menginisialisasi $wp_scriptsjika belum ditetapkan.
jgraup

Anda harus menambahkan prioritas ,9999seperti add_action( 'wp_print_scripts', wpa54064_inspect_scripts', 9999 );, jika tidak, Anda akan melihat skrip yang diakhiri oleh file functions.php
Ryszard Jędraszyk

2

Apakah ada cara untuk mendapatkan $ handle untuk setiap skrip yang telah enqueued?

Anda dapat mencoba memeriksa $wp_scripts->queuepada suatu kait tertentu tetapi itu tidak akan memberi Anda daftar semua pegangan yang digunakan oleh WordPress, percaya atau tidak.

Misalnya, Anda bisa menghubungkan ke wp_head, yang menjalankan wp_print_scriptsaksi, untuk mendapatkan daftar $handlesuntuk tema tema Twenty Seventeen di WP v4.7.5:

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

add_action( 'wp_head', 'get_enqueued_scripts' );

Dan daftar $handlesdari $wp_scripts->groupsakan menampilkan:

masukkan deskripsi gambar di sini

Pada titik ini, jika Anda membandingkan apa yang ada di dalam $wp_scripts->queueAnda hanya akan melihat subset di atas.

Oleh karena itu, bahkan wp_print_scripts tidak akan memberikan daftar lengkap pegangan seperti yang ditunjukkan di atas, jika itu yang Anda cari. Dan tidak mungkin untuk selalu bergantung pada dependensi yang dikelompokkan untuk mendapatkannya juga.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.