un truc m’échappe avec jquery….. (Créer un compte)

  • Statut : non résolu
13 sujets de 1 à 13 (sur un total de 13)
  • Auteur
    Messages
  • #507300
    Lionelwp
    Participant
    Maître WordPress
    629 contributions

    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 » ????

    #823402
    seebz
    Participant
    Padawan WordPress
    80 contributions
    #823403
    Lionelwp
    Participant
    Maître WordPress
    629 contributions

    merci à 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 … 😉

    #823404
    Guy
    Participant
    Maître WordPress
    14817 contributions

    C’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.

    #823405
    Lionelwp
    Participant
    Maître WordPress
    629 contributions

    oui, 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é ???

    #823406
    Guy
    Participant
    Maître WordPress
    14817 contributions

    Je 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.

    #823407
    Lionelwp
    Participant
    Maître WordPress
    629 contributions

    oui 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???

    #823408
    Guy
    Participant
    Maître WordPress
    14817 contributions

    Que 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.

    #823409
    Lionelwp
    Participant
    Maître WordPress
    629 contributions

    quand 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?

    #823410
    Guy
    Participant
    Maître WordPress
    14817 contributions

    la 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é?

    #823411
    Laurent H
    Membre
    Chevalier WordPress
    126 contributions

    Quand 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…

    #823412
    Lionelwp
    Participant
    Maître WordPress
    629 contributions
    Guy 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

    #823413
    Guy
    Participant
    Maître WordPress
    14817 contributions

    De 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 .

13 sujets de 1 à 13 (sur un total de 13)
  • Vous devez être connecté pour répondre à ce sujet.