it-swarm.asia

اختبار لمعرفة ما إذا كان jQuery أو النموذج الأولي في قائمة الانتظار من قبل البرنامج المساعد آخر؟

في المكون الإضافي ، أريد اختبار لمعرفة ما إذا كان سيتم تحميل jQuery أو النموذج الأولي (أو كليهما) بواسطة مكون إضافي آخر. لذلك ، لديك wp_enqueue_script('jquery') أو wp_enqueue_script('prototype') تم استدعاؤها بالفعل.

لديّ رمز مناسب للمكون الإضافي الخاص بي في الملفات plugin.prototype.js و plugin.jquery.js وإذا تم وضع النموذج الأولي في قائمة الانتظار ، فسيستخدم المكون الإضافي الخاص بي plugin.prototype.js. بهذه الطريقة أتجنب التحميل أكثر من اللازم في الموقع. إذا لم يتم تحميل أي منهما ، فسوف أقوم بالصفوف أيهما أصغر.

كيف يمكنني اختبار لمعرفة ما تم وضعه في قائمة الانتظار؟ كيف أتأكد من تشغيل الرمز الخاص بي؟

5
artlung

استخدم wp_script_is() للتحقق مما إذا كان البرنامج النصي في قائمة الانتظار.

function add_my_scripts() {
    $doing_jquery = wp_script_is('jquery', 'queue');
    $doing_prototype = wp_script_is('prototype', 'queue');

    var_dump($doing_jquery, $doing_prototype);
}
add_action('wp_print_scripts', 'add_my_scripts');
11
Annika Backstrom

للتأكد من تشغيل التعليمات البرمجية بعد تحميل jQuery أو Prototype ، استخدم المعلمة $deps إلى wp_enqueue_script ، وقم بتمرير إما array('jquery') أو array('prototype'). إذا كنت تريد معرفة ما إذا كان البرنامج النصي في قائمة الانتظار ، يمكنك استخدام طريقة query() من WP_Dependencies ( والتي هي الفئة الفائقة من WP_Scripts ). هكذا شيء من هذا القبيل يجب أن تعمل:

global $wp_scripts;
$jQueryIsLoaded = (bool) $wp_scripts->query('jquery');
$prototypeIsLoaded = (bool) $wp_scripts->query('prototype');

بالطبع ، يمكن أن تضيفها الإضافات بعد أن تقرر أحدها ، لذا حاول التأكد من تنفيذ هذا الفحص في آخر لحظة ممكنة.

2
Jan Fabry