Est-il possible d'utiliser wp_enqueue_script () pour les scripts en ligne?
Je le fais parce que mon script en ligne dépend d'un autre script et j'aimerais pouvoir l'insérer après l'avoir chargé.
En outre, c'est un script en ligne parce que je passe des variables php dans le javascript (comme le chemin du thème, etc.)
Merci d'avance.
wp-enqueue-script
chrisjlee
la source
la source
wp_add_inline_script()
wp_add_inline_script avec wordpress jqueryIl suffit de ne pas en faire un script en ligne, puis de lui transmettre les paramètres dynamiques en tant que variables. Otto a écrit un excellent guide sur la manière de procéder efficacement.
WordPress 3.3 rendra également cela plus puissant: https://core.trac.wordpress.org/ticket/11520
la source
Cette solution est similaire à la réponse de @ scribu , mais elle suit la forme de
wp_enquque_script()
, et placera le script dans l'en-tête si ses dépendances sont incluses dans l'en-tête.Note: ceci utilise des fonctions anonymes, mais pour les versions de PHP antérieures à 5.3, cela peut être facilement converti en classe.
la source
Depuis WordPress 4.5, vous pouvez utiliser wp_add_inline_script () :
la source
La meilleure façon que j'ai trouvée est d'utiliser
wp_localize_script()
, comme suggéré par @scribu.D'habitude, j'ai décidé d'utiliser Javascript en ligne car je devais fournir des variables PHP à mon script. Cela peut être résolu avec
wp_localize_script()
. Je vais donner un exemple:Vous avez un tableau
$aFoo
avec quelques options et vous devez le transmettre à un script.Utiliser un script en ligne:
Utilisant
wp_localize_script()
:Alors,
pathToScript/script.js
serait:De cette façon, vous n'avez plus jamais besoin de scripts en ligne.
la source
Scribu est absolument correct. Quoi qu'il en soit, je veux ajouter quelques informations:
Je veux que ma fonction génère un script une fois, quelle que soit la fréquence à laquelle il est appelé. C'est une fonction liée au contenu, je ne peux donc pas attendre de hooks. J'ai utilisé scribus infos et quelques lectures du noyau WP pour trouver ceci:
En utilisant cette méthode, je suis capable d'imprimer un script en ligne une fois. Dans mon cas, j'ai une fonction qui crée un bouton de partage et nécessite qu'un script soit exécuté pour tous les boutons. Mais une seule fois.
la source
echo
approche du script en ligne est la façon dont le thème de Twenty Seventeen a été construit, au moins à un moment donné. Et j'utilise cette technique aussi. Fonctionne très bien et vous permet de vous accrocher à différents endroits.