Câu trả lời:
các $wp_scripts
toàn cầu nắm giữ tất cả các dữ liệu kịch bản:
function wpa54064_inspect_scripts() {
global $wp_scripts;
foreach( $wp_scripts->queue as $handle ) :
echo $handle;
endforeach;
}
add_action( 'wp_print_scripts', 'wpa54064_inspect_scripts' );
,9999
như add_action( 'wp_print_scripts', wpa54064_inspect_scripts', 9999 );
, nếu không bạn sẽ được nhìn thấy kịch bản được dequeued bởi tập tin functions.php
Có cách nào để lấy $ xử lý cho mỗi tập lệnh đã được xử lý không?
Bạn có thể thử kiểm tra $wp_scripts->queue
tại một hook cụ thể nhưng nó sẽ không cung cấp cho bạn danh sách tất cả các thẻ điều khiển được sử dụng bởi WordPress, tin hay không.
Ví dụ: bạn có thể nối vào wp_head
, chạy wp_print_scripts
hành động, để có danh sách $handles
cho chủ đề Twenty Seventeen trong WP v4.7.5:
function get_enqueued_scripts () {
$scripts = wp_scripts();
var_dump( array_keys( $scripts->groups ) );
}
add_action( 'wp_head', 'get_enqueued_scripts' );
Và danh sách $handles
từ $wp_scripts->groups
sẽ xuất ra:
Tại thời điểm này, nếu bạn so sánh những gì tồn tại trong $wp_scripts->queue
bạn sẽ chỉ thấy một tập hợp con ở trên.
Do đó, thậm chí wp_print_scripts
sẽ không cung cấp danh sách đầy đủ các thẻ điều khiển như được hiển thị ở trên, nếu đó là những gì bạn đang theo đuổi. Và không thể luôn luôn dựa vào các phụ thuộc được nhóm để có được chúng.
$wp_scripts = wp_scripts();
có thể tốt hơn là truy cập trực tiếp vào toàn cầu vì nó sẽ khởi tạo$wp_scripts
nếu nó chưa được đặt.