ตรวจสอบว่าสคริปต์ / สไตล์ถูกจัดคิว / ลงทะเบียน


31

เป็นไปได้ไหมที่จะทดสอบว่าสคริปต์หรือสไตล์ได้รับการลงทะเบียนโดยใช้wp_register_script/_styleหรือwp_enqueue_script/_styleไม่? ฟังก์ชั่นทั้งหมดไม่ได้คืนค่าและฉันก็ไร้เดียงสาอย่างสมบูรณ์

ฉันต้องการมันเพื่อสลับระหว่างฟังก์ชั่นที่แตกต่างกันขึ้นอยู่กับสไตล์ชีต - ไลบรารีและสคริปต์ที่ฉันเสนอ

ขอขอบคุณ!

คำตอบ:


49

wp_script_is( $handle, $list )มีฟังก์ชั่นที่เรียกว่าเป็น $listสามารถเป็นหนึ่งใน:

  • 'ลงทะเบียน' - ถูกลงทะเบียนผ่าน wp_register_script()
  • 'คิว' - ถูกลงทะเบียนผ่าน wp_enqueue_script()
  • 'เสร็จสิ้น' - ถูกพิมพ์แล้ว
  • 'to_do' - จะถูกพิมพ์

Ditto wp_style_is()สิ่งที่สำหรับ


11

ตรวจสอบ$GLOBALS['wp_scripts']->registeredสคริปต์

ตัวอย่าง

function is_enqueued_script( $script )
{
    return isset( $GLOBALS['wp_scripts']->registered[ $script ] );
}

print (int) is_enqueued_script( 'l10n' );

$GLOBALS['wp_styles']->registered ทำงานในลักษณะเดียวกัน


1
ลงคะแนนเนื่องจากการขาดการตรวจสอบสติทำให้ความเป็นไปได้สำหรับข้อผิดพลาดร้ายแรง
Backie

2
@Backie แต่คุณเข้าใจว่านี่เป็นหลักฐานของแนวคิดหรือไม่
fuxia

wp_script_is () เป็นวิธีการแก้ปัญหาที่ดีขึ้นและปลอดภัยมากขึ้น (อดัม Backstrom`) วิธีการแก้ปัญหา
chrisjlee
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.