Testen Sie, ob JQuery oder Prototyp von einem anderen Plugin in der Warteschlange gestellt werden?

wordpress.stackexchange https://wordpress.stackexchange.com/questions/206

Frage

In meinem Plugin möchte ich testen, ob JQuery oder Prototyp (oder beides) von einem anderen Plugin geladen werden. So haben wp_enqueue_script('jquery') oder wp_enqueue_script('prototype') wurde bereits gerufen.

Ich habe Code, das meinem Plugin in Dateien geeignet ist plugin.prototype.js und plugin.jquery.js Und wenn der Prototyp in der Warteschlange ist, wird mein Plugin verwendet plugin.prototype.js. Auf diese Weise vermeide ich es, mehr als nötig in die Website zu laden. Wenn keiner geladen ist, werde ich mich anstellen, was kleiner ist.

Wie kann ich testen, um zu sehen, was in der Warteschlange gestellt wurde? Wie stelle ich sicher, dass mein Code dauert?

War es hilfreich?

Lösung

Verwenden wp_script_is() Um zu überprü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');

Andere Tipps

Um sicherzustellen, dass Ihr Code nach dem Laden von JQuery oder dem Prototyp ausgeführt wird, verwenden Sie die $deps Parameter zu wp_enqueue_script, und passieren entweder array('jquery') oder array('prototype'). Wenn Sie wissen möchten, ob sich ein Skript in der Warteschlange befindet, können Sie verwenden das query() Methode von WP_Dependencies (Welches ist die Superklasse von WP_Scripts). Also so etwas sollte funktionieren:

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

Natürlich könnte Plugins sie entgegennehmen, nachdem Sie sich für einen entschieden haben. Versuchen Sie also sicherzustellen, dass Sie diesen Scheck im letzten möglichen Moment ausführen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit wordpress.stackexchange
scroll top