Vérifiez si un script / style a été mis en file d'attente / enregistré

31

Est-il possible de tester si un script ou un style a été enregistré avec wp_register_script/_styleou wp_enqueue_script/_style? Toutes les fonctions ne renvoient pas de valeur et je suis complètement désemparé.

J'en ai besoin pour basculer entre différentes fonctions en fonction des bibliothèques de feuilles de style et des scripts que j'offre.

Merci!

kaiser
la source

Réponses:

49

Il y a une fonction appelée wp_script_is( $handle, $list ). $listpeut être l'un des:

  • «enregistré» - a été enregistré via wp_register_script()
  • 'queue' - a été mis en file d'attente via wp_enqueue_script()
  • «terminé» - a été imprimé
  • 'to_do' - sera imprimé

Idem pour tout ça wp_style_is().

Annika Backstrom
la source
11

Vérifiez les $GLOBALS['wp_scripts']->registeredscripts.

Exemple

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

print (int) is_enqueued_script( 'l10n' );

$GLOBALS['wp_styles']->registered fonctionne de la même manière.

fuxia
la source
1
Down a voté ce manque de vérification de la raison, laissant la possibilité d'erreurs fatales.
Backie
2
@Backie, mais vous comprenez que c'est une preuve de concept?
fuxia
wp_script_is () est une solution meilleure et plus sûre (Adam Backstrom`)
chrisjlee