Question

Dans mon plug-in, je veux tester pour voir si jQuery ou Prototype (ou les deux) vont être chargés par un autre plug-in. Alors, avez- wp_enqueue_script('jquery') ou wp_enqueue_script('prototype') a déjà été appelé.

J'ai le code approprié à mon plug-in dans les fichiers plugin.prototype.js et plugin.jquery.js et si Prototype est mis en attente, mon plugin utiliser plugin.prototype.js. Ce que je voie évite de charger plus que nécessaire dans le site. Si aucun chargé, je fait la queue la plus petite valeur.

Comment puis-je tester pour voir ce qui a été mis en attente jusqu'à? Comment puis-je assurer que mon code est exécuté dernier?

Était-ce utile?

La solution

Utilisez wp_script_is() pour vérifier si un script est dans la file d'attente.

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

Autres conseils

Pour vous assurer que l'exécution de votre code après jQuery ou Prototype est chargé, utilisez le paramètre $deps à wp_enqueue_script et passer soit array('jquery') ou array('prototype'). Si vous voulez savoir si un script est dans la file d'attente, vous pouvez utiliser la méthode de query() WP_Dependencies ( qui est la superclasse de WP_Scripts ). Donc, quelque chose comme cela devrait fonctionner:

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

Bien sûr, plugins pourrait les enqueue après que vous avez décidé sur un, essayez donc de vous assurer d'exécuter ce contrôle au dernier moment.

Licencié sous: CC-BY-SA avec attribution
Non affilié à wordpress.stackexchange
scroll top