Überprüfen Sie, ob ein Skript / Stil in die Warteschlange gestellt / registriert wurde

31

Ist es möglich zu testen, ob ein Skript oder ein Stil mit wp_register_script/_styleoder registriert wurde wp_enqueue_script/_style? Alle Funktionen geben keinen Wert zurück und ich bin völlig ahnungslos.

Ich brauche es, um zwischen verschiedenen Funktionen zu wechseln, abhängig von den Stylesheet-Bibliotheken und Skripten, die ich anbiete.

Vielen Dank!

Kaiser
quelle

Antworten:

49

Es gibt eine Funktion, die aufgerufen wird wp_script_is( $handle, $list ). $listkann sein:

  • 'registered' - wurde durch registriert wp_register_script()
  • 'Warteschlange' - wurde in die Warteschlange eingereiht wp_enqueue_script()
  • 'erledigt' - wurde gedruckt
  • 'to_do' - wird gedruckt

Das Gleiche gilt für wp_style_is().

Annika Backström
quelle
11

Suchen Sie $GLOBALS['wp_scripts']->registerednach Skripten.

Beispiel

function is_enqueued_script( $script )
{
    return isset( $GLOBALS['wp_scripts']->registered[ $script ] );
}

print (int) is_enqueued_script( 'l10n' );

$GLOBALS['wp_styles']->registered funktioniert genauso.

fuxia
quelle
1
Abgestimmt diese mangelnde Überprüfung der geistigen Gesundheit, lässt die Möglichkeit für schwerwiegende Fehler.
Backie
2
@Backie, aber du verstehst, dass dies ein Proof of Concept ist?
fuxia
wp_script_is () ist eine bessere und sicherere Lösung (Adam Backstrom)
chrisjlee