Cette page du Codex nous donne la liste de tous les scripts par défaut fournis avec WP. Mais comment savoir lesquels sont réellement utilisés pour ne pas les mettre en file d'attente manuellement? Ou bien sommes-nous concernés et mettons-nous simplement en file d'attente ceux dont nous avons besoin, et wp_enqueue_script()
ignorera simplement la demande de mise en file d'attente si ce script est déjà chargé?
Mais qu'en est-il des versions? Si je spécifie des versions avec wp_enqueue_script
et que la version fournie avec WP est inférieure à cela, l'appel wp_enqueue_script
sera-t-il simplement ignoré et je me retrouverai sans le script que je cherchais?
Je répondrai à chacune de vos questions dans l'ordre:
Pas vraiment. WordPress enregistre chaque script et le maintient dans un tableau. Lorsque vous mettez le script en file d'attente, WordPress le charge ainsi que toutes les dépendances dont il dispose lorsqu'il appelle wp_print_scripts()
(lié au crochet wp_head
).
Si vous mettez un script en file d'attente deux fois, il ne sera imprimé qu'une fois. Alors ne vous inquiétez pas pour ça. Il suffit de toujours mettre en file d'attente ce dont vous avez besoin.
WordPress ne vous permettra d'enregistrer qu'une seule version d'un script. Ainsi, si une version plus ancienne est déjà enregistrée, vous ne pouvez pas enregistrer la nouvelle.
L'appel de wp_enqueue_script()
avec la nouvelle version ne le mettra pas non plus en file d'attente. Lorsque vous essayez de mettre en file d'attente un script avec l'URI complet, WordPress enregistre d'abord le script, puis de le mettre en file d'attente ... afin que, si une version plus ancienne est déjà enregistrée, vous finissez par le mettre en file d'attente.
Si vous devez absolument mettre en file d'attente une nouvelle version (c'est-à-dire que vous souhaitez utiliser la dernière version de jQuery plutôt que celle livrée avec WordPress), vous devez d'abord désenregistrer l'ancienne version, puis enregistrer/mettre en file d'attente la nouvelle version.
Quelqu'un d'autre a déjà expliqué comment faire cela dans une autre question, je vais donc vous y référer ...