- Statut : non résolu
- Ce sujet contient 12 réponses, 4 participants et a été mis à jour pour la dernière fois par Guy, le il y a 12 années et 8 mois.
-
AuteurMessages
-
21 mars 2012 à 10 h 11 min #507300
Bonjour,
Ma configuration WP actuelle
– Version de WordPress : 3.3.1
– Version de PHP/MySQL : 5.2
– Thème utilisé : custom– Nom de l’hebergeur : localhost
Problème(s) rencontré(s) :
bonjour,
je me demande si j’ai sauté ou pas une étape dans l’évolution de WordPress.
dans un thème perso que j’écris, j’ai rajouté la ligne habituelle wp_enqueue_script(‘jquery’);
dans mon fichier functions.php
et une ligne
dans header.php.dans mon fichier custom.js je rajoute une ligne de test alert(‘jquery actif’); et le message s’affiche, comme quoi mon jquery fonctionne dans mon blog wordpress.
cependant, si je commente la ligne wp_enqueue_script(‘jquery’); dans le functions.php, et bien ça fonctionne toujours, je vois avec Firebug aussi que la librairie jquery est bien chargée… à partir de wp_includes/js/jquery
cela veut il dire que désormais jquery est actif d’office dans les dernières versions de wordpress et qu’il n’est plus nécessaire de l’ « enqueuer » ????
21 mars 2012 à 11 h 03 min #823402Cela devrait répondre à ta question :
http://codex.wordpress.org/Function_Reference/wp_enqueue_script#Default_scripts_included_with_WordPress21 mars 2012 à 12 h 34 min #823403merci à toi
ça y répond sans y répondre ..
est ce que ça veut dire que les librairies sont inclues en tant que fichier dans l’installation de WordPress ou bien que ces librairies sont actives, ce qui m’étonnerait vu leur nombre…
donc ma question reste un peu entière … 😉
21 mars 2012 à 14 h 42 min #823404C’est la liste des « handles » que wordpress a enregistré pour différents scripts. Quand tu appelles wp-enqueue_script, l’argument $deps te permet d’indiquer des scripts nécessaires à l’exécution de ton script. Si il dépend de jquery et de thickbox, il te faudra les rajouter et ils seront alors chargés avant l’exécution de ton script.
Je n’ai jamais vérifié, mais je suppose que WordPress mutualise tout ça et qu’il ne charge pas 5 fois jquery si 5 scripts le demande. En tout cas, dans WordPress, je ne charge plus jamais explicitement jquery, je le charge par les dépendances de la fonction, cela a simplifié dans la plupart des cas les conflits de version.
21 mars 2012 à 15 h 49 min #823405oui, mais si je ne fais rien .. jquery est listé dans les scripts affichés par Firebug … donc ça veut dire qu’il est ben activé ???
21 mars 2012 à 19 h 08 min #823406Je pense que tu ne peux pas presupposer que jquery sera chargé, la mieux est donc de l’ajouter dans les dépendances du script que tu veux ajouter.
22 mars 2012 à 8 h 47 min #823407oui mais pourquoi su je ne fais rien, la librairie est elle chargée??
si je la charge, elle ne va pas se charger deux fois???
22 mars 2012 à 9 h 15 min #823408Que veux dire si je ne fais rien? tu lances le navigateur et jquery est déjà chargée?
ou tu lances wordpress avec un thème et alors jquery est chargée?Tout est écrit de toute façon dans le codex dans la présentation de la fonction enqueue_script.
Description
The safe and recommended method of adding JavaScript to a WordPress generated page is by using `wp_enqueue_script()`. This function includes the script if it hasn’t already been included, and safely handles dependencies.Ce qui veut dire que WordPress ne rechargera pas jquery une deuxième fois, à partir du moment où tu te sers des fonctions wp_enqueue_scripts pour lancer le script, tu peux aussi enregistrer au préalable tes handles de scripts avec wp_register_scripts.
22 mars 2012 à 12 h 06 min #823409quand je dis que je fais rien, je veux dire que je ne rajoute pas la ligne
wp_enqueue_script(‘jquery’);
dans le fichier functions.php
donc si jquery se charge dans ce cas , à quoi sert la ligne en question?
22 mars 2012 à 12 h 23 min #823410la ligne en question charge jquery en se servant du handle défini par wordpress.
Si c’est le concepteur du thème qui l’a mise, c’est qu’à un moment ou à un autre il doit appeler un script qui fait appel à jquery, sinon, c’était inutile.
Si jquery est chargé, sais tu si c’est wordpress ou le thème qui l’a chargé?
22 mars 2012 à 15 h 50 min #823411Quand tu fais :
[c]wp_enqueue_script(‘custom-jquery’, get_bloginfo(‘stylesheet_directory’) . « /jquery/custom.js », array(‘jquery’), ‘20120119’ );[/c]
Tu lui dis de charcher custom.js, ET que custom.js dépend de jquery, donc tu lui demandes aussi de charger jquery si ça n’a pas déjà été fait…
27 mars 2012 à 8 h 40 min #823412Guy wrote:Si jquery est chargé, sais tu si c’est wordpress ou le thème qui l’a chargé?à priori je sais pas, mais si je commente la ligne wp_enqueue_script(‘jquery’); il se charge quand même…
alors je me demande à quoi sert cette ligne
27 mars 2012 à 9 h 37 min #823413De toute façon, en te servant de wp_enqueue_script avec un handle de script, WordPress ne chargera pas deux fois le même script. Regarde encore le codex et les fonctions wp-register_script et wp_enqueue_script.
Si tu veux charger explicitement la version de la librairie jquery définie par WordPress avec le handle « jquery » grâce à ton instruction tu peux le faire, pourquoi pas sauf que comme tu as pu le voir cela ne sert à rien si tu appelles tes scripts avec wp_enqueue_script et en renseignant correctement les dépendances.
Tu dois avoir tes raisons pour le faire mais tu ne les as pas expliqué ici. Une des raisons serait que tu appelles tes scripts jquery dans des balises .
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.