Testen Sie, ob jQuery oder Prototype von einem anderen Plugin in die Warteschlange gestellt wird?

In meinem Plugin möchte ich testen, ob jQuery oder Prototype (oder beide) von einem anderen Plugin geladen werden. Also, wp_enqueue_script('jquery') oder wp_enqueue_script('prototype') wurde bereits aufgerufen.

Ich habe Code passend zu meinem Plugin in den Dateien plugin.prototype.js und plugin.jquery.js und wenn Prototype in die Warteschlange gestellt wird, wird mein Plugin plugin.prototype.js . Auf diese Weise vermeide ich mehr als nötig in die Site zu laden. Wenn keiner geladen hat, werde ich anstehen, was auch immer kleiner ist.

Wie kann ich testen, was in der Warteschlange ist? Wie stelle ich sicher, dass mein Code zuletzt ausgeführt wird?

Solutions Collecting From Web of "Testen Sie, ob jQuery oder Prototype von einem anderen Plugin in die Warteschlange gestellt wird?"

Verwenden Sie wp_script_is() , um zu prüfen, ob sich ein Skript in der Warteschlange befindet.

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

Um sicherzustellen, dass der Code nach dem Laden von jQuery oder Prototype ausgeführt wird, verwenden Sie den Parameter $deps für wp_enqueue_script und übergeben Sie entweder das array('jquery') oder das array('prototype') . Wenn Sie wissen möchten, ob sich ein Skript in der Warteschlange befindet, können Sie die Methode query() von WP_Dependencies ( die die Oberklasse von WP_Scripts ). Also sollte so etwas funktionieren:

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

Natürlich könnten Plugins sie in die Warteschlange stellen, nachdem Sie sich für einen entschieden haben. Versuchen Sie also, diese Überprüfung im letztmöglichen Moment durchzuführen.