Domanda

Nel mio plug-in, voglio test per vedere se jQuery o Prototype (o entrambi) stanno per essere caricato da un altro plugin. Così, hanno wp_enqueue_script('jquery') o wp_enqueue_script('prototype') è già stato chiamato.

Ho codice appropriato per il mio plug-in file plugin.prototype.js e plugin.jquery.js e se Prototype è in coda, il mio plugin utilizzare plugin.prototype.js. In questo modo ho evitare di caricare più del necessario nel sito. Se nessuno dei due è stato caricato, io in coda a seconda di quale è più piccolo.

Come posso provare a vedere quello che è stato in coda? Come posso essere sicuro il mio codice viene eseguito ultima?

È stato utile?

Soluzione

Usa wp_script_is() per controllare se uno script è nella coda.

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');

Altri suggerimenti

Per assicurarsi che le corse codice dopo jQuery o Prototype viene caricato, utilizzare il parametro $deps a wp_enqueue_script, e superare sia array('jquery') o array('prototype'). Se volete sapere se uno script è in coda, è possibile utilizzare il metodo query() di WP_Dependencies (, che è la superclasse di WP_Scripts ). Quindi, qualcosa come questo dovrebbe funzionare:

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

Naturalmente, i plugin potrebbe accodare loro dopo aver deciso su uno, quindi cercate di fare in modo che si esegue questo controllo all'ultimo momento possibile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a wordpress.stackexchange
scroll top