it-swarm.asia

JQuery veya Prototype'ın başka bir eklenti tarafından sıraya alındığını görmek için test edin.

Eklentimde, jQuery veya Prototype (veya her ikisinin) başka bir eklenti tarafından yüklenip yüklenmeyeceğini test etmek istiyorum. Yani, var wp_enqueue_script('jquery') veya wp_enqueue_script('prototype') zaten çağrıldı.

Eklentime uygun plugin.prototype.js ve plugin.jquery.js dosyalarında kodum var ve Prototip kuyruğa alınırsa eklentim plugin.prototype.js kullanacak. Bu şekilde siteye gereğinden fazla yükleme yapmaktan kaçınırım. Hiçbiri yüklenmediyse, hangisinin daha küçük olduğunu sıraya koyacağım.

Neyin sıralandığını görmek için nasıl test yapabilirim? Kodumun en son çalıştığından nasıl emin olabilirim?

5
artlung

Bir betiğin sırada olup olmadığını kontrol etmek için wp_script_is() öğesini kullanın.

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

Kodunuzun jQuery veya Prototype yüklendikten sonra çalıştığından emin olmak için $deps parametresini wp_enqueue_script olarak kullanın ve array('jquery') veya array('prototype') komutlarını iletin. Bir betiğin sırada olup olmadığını bilmek istiyorsanız, query() YÖNTEMINI WP_Dependencies ( kullanabilirsiniz; WP_Scripts ). Yani böyle bir şey çalışması gerekir:

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

Elbette, eklentiler siz karar verdikten sonra onları etkileyebilir, bu yüzden bu kontrolü en son anda yaptığınızdan emin olun.

2
Jan Fabry