มีวิธีใดบ้างในการรับ $ handle สำหรับแต่ละสคริปต์ที่ถูกจัดคิวไว้?
มีอาร์เรย์บางอย่างที่มีที่จับทั้งหมดเพื่อให้ฉันสามารถวนรอบมันและทำบางสิ่งโดยใช้การจัดการ $ แต่ละหรือไม่
มีวิธีใดบ้างในการรับ $ handle สำหรับแต่ละสคริปต์ที่ถูกจัดคิวไว้?
มีอาร์เรย์บางอย่างที่มีที่จับทั้งหมดเพื่อให้ฉันสามารถวนรอบมันและทำบางสิ่งโดยใช้การจัดการ $ แต่ละหรือไม่
คำตอบ:
$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' );
,9999
เช่นadd_action( 'wp_print_scripts', wpa54064_inspect_scripts', 9999 );
มิฉะนั้นคุณจะเห็นสคริปต์ที่ถูก dequeued โดยไฟล์ functions.php
มีวิธีใดบ้างในการรับ $ handle สำหรับแต่ละสคริปต์ที่ถูกจัดคิวไว้?
คุณสามารถลองตรวจสอบ$wp_scripts->queue
ที่ hook ที่ระบุได้ แต่จะไม่ให้รายการของการจัดการทั้งหมดที่ WordPress ใช้เชื่อหรือไม่
ตัวอย่างเช่นคุณสามารถเชื่อมโยงwp_head
ซึ่งเรียกใช้wp_print_scripts
การดำเนินการเพื่อรับรายการ$handles
ธีมยี่สิบหุ้นใน WP v4.7.5:
function get_enqueued_scripts () {
$scripts = wp_scripts();
var_dump( array_keys( $scripts->groups ) );
}
add_action( 'wp_head', 'get_enqueued_scripts' );
และรายการ$handles
จาก$wp_scripts->groups
จะ:
ณ จุดนี้หากคุณจะเปรียบเทียบสิ่งที่มีอยู่ใน$wp_scripts->queue
คุณจะเห็นเพียงส่วนย่อยของด้านบน
ดังนั้นแม้wp_print_scripts
จะไม่ได้จัดเตรียมรายการของการจัดการตามที่แสดงไว้ด้านบนหากเป็นสิ่งที่คุณต้องการ และเป็นไปไม่ได้ที่จะพึ่งพาการพึ่งพาแบบกลุ่มเพื่อให้ได้มาซึ่งกัน
$wp_scripts = wp_scripts();
อาจจะดีกว่าการเข้าถึงโลกโดยตรงเพราะมันจะเริ่มต้น$wp_scripts
หากยังไม่ได้ตั้งค่า