wp_enqueue_script () ne fonctionne pas du tout
3 réponses
- votes
-
- 2014-12-23
wp_enqueue_style
etwp_enqueue_script
accepte denombreuxparamètreset ilesttrèsimportant de les utiliser dans lebon ordre sinon cesfonctions échoueront.Voici unensemble complet deparamètrespour chaquefonction.
wp_enqueue_style( $handle, $src, $deps, $ver, $media ); wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer );
Dans votre
wp_enqueue_style
,vous définissez correctement$handle
,$src
mais$deps
àtrue
quin'estpas correct. Ilen va demêmepourwp_enqueue_script
.Voici donc votrefonctionfixe.
function load_css_js() { wp_enqueue_style( 'gdgt-base', get_template_directory_uri() . '/css/gdgt-base.css', false, NULL, 'all' ); wp_enqueue_style( 'gdgt-icon', get_template_directory_uri() . '/icons/css/gdgt.css', false, NULL, 'all' ); wp_register_script( 'gdgt-base', get_template_directory_uri() . '/js/gdgt-base.js', array( 'jquery' ), NULL, false ); wp_enqueue_script( 'gdgt-base' ); } add_action( 'wp_enqueue_scripts', 'load_css_js' );
Pourplus d'informations,lisez la documentation de chaquefonction du codex.
wp_enqueue_style
andwp_enqueue_script
accepts many parameters and it's very important to use them in correct order otherwise these functions will fail.Here are complete set of parameters for each function.
wp_enqueue_style( $handle, $src, $deps, $ver, $media ); wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer );
In your
wp_enqueue_style
you define$handle
,$src
correctly but$deps
totrue
which is not correct. Same goes forwp_enqueue_script
.So here is your fixed function.
function load_css_js() { wp_enqueue_style( 'gdgt-base', get_template_directory_uri() . '/css/gdgt-base.css', false, NULL, 'all' ); wp_enqueue_style( 'gdgt-icon', get_template_directory_uri() . '/icons/css/gdgt.css', false, NULL, 'all' ); wp_register_script( 'gdgt-base', get_template_directory_uri() . '/js/gdgt-base.js', array( 'jquery' ), NULL, false ); wp_enqueue_script( 'gdgt-base' ); } add_action( 'wp_enqueue_scripts', 'load_css_js' );
For more information, read documentation for each function on codex.
-
** EDIT: ** Il semble qu'il charge lefichier JS,mais le code dufichier JSne fonctionnepas.(Celafonctionne sije désenregistre lejQuerypar défaut).|Malheureusement,le codefixene fonctionnepas :(**EDIT:** It looks like it is loading the JS file, but the code on the JS file doesn't work. (It works if I deregister the default jQuery). | Unfortunately, the fixed code isn't working :(
- 0
- 2014-12-23
- DON TOLIVER
-
Je viens de letesteret çamarchebien.Jepense que dans votrethème,une autrefonction remplace la sortie.Recherche d'autresfonctions `wp_enqueue_scripts` ...I just tested it, and it's working fine. I think in your theme some other function is overriding the output. Search for other `wp_enqueue_scripts` functions...
- 0
- 2014-12-23
- Robert hue
-
J'ai édité le commentaire.Veuillez lire ça :)I've edited the comment. Please read that :)
- 0
- 2014-12-23
- DON TOLIVER
-
C'est un sujettotalement différentpour lequel votre code dans lesfichiers JSne fonctionnepas.Laprincipale raisonpour laquelle le code JSne fonctionnepas avec lenoyau `jQuery`mais avec un`jQuery`externepourrait être que lenoyau `jQuery`fonctionneen mode sans conflit.Et votre code JSne l'estpas.Vous devrez changer votre code JSpourjQuerynoconflict.That's totally different topic why your code in JS files are not working. The main reason for JS code not working with core `jQuery` but working with external `jQuery` could be that the core `jQuery` runs under noconflict mode. And your JS code is not. You will need to change your JS code for jQuery noconflict.
- 0
- 2014-12-23
- Robert hue
-
Lefaitest queje charge le dernierjQuery àpartir de http://code.jquery.com/jquery-latest.min.jset celafonctionne.Alors qu'est-ce quipeutprovoquer le conflit?The thing is, I'm loading the latest jQuery from http://code.jquery.com/jquery-latest.min.js and it works. So what may cause the conflict?
- 0
- 2014-12-23
- DON TOLIVER
-
Voici la solution à votre autreproblème.[Pourquoi $forjqueryne fonctionnepas?] (Http://wordpress.stackexchange.com/questions/55230/why-for-jquery-doesnt-work/55232#55232).Convertissez votre codepour lemodejQuery sans conflitet celafonctionnera.Here is solution to your other problem. [Why $ for jquery doesn't work?](http://wordpress.stackexchange.com/questions/55230/why-for-jquery-doesnt-work/55232#55232). Convert your code for jQuery noconflict mode and it will work.
- 0
- 2014-12-23
- Robert hue
-
Mercibeaucoup,Robert!Si quelqu'un d'autre rencontre cela,utilisez simplement: `(function ($) { $ (document) .ready (fonction () { //votre code }); }) (jQuery); `:)Thank you so much, Robert! If anyone else come across this, just use: `(function($){ $(document).ready(function(){ //your code }); })(jQuery);` :)
- 0
- 2014-12-23
- DON TOLIVER
-
Heureux d'avoirpu aider.:)Glad I could help. :)
- 0
- 2014-12-23
- Robert hue
-
Euh,j'ai une autre question,j'ai remplacé `false`par`true`pour `$in_footer`mais celane fonctionnepas.J'ai égalementexaminé le codexet il semble qu'il y ait du «vrai» sur l'un de leursexemples.Mais celane fonctionnepaspour une raison quelconquepourmoi.Erm I've another question, I replaced `false` with `true` for `$in_footer` but it isn't working. I looked into codex as well and it looks like there is `true` on one of their examples. But it it isn't working for some reason for me.
- 0
- 2014-12-23
- DON TOLIVER
-
Habituellement,cela devraitfonctionner,je ne saispaspourquoi celane fonctionnepaspour vous.Usually that should work, not sure why it's not working for you.
- 0
- 2014-12-23
- Robert hue
-
Il semble que vous utilisez lamêmepoignéepourenregistrer un scriptet unefeuille de style.Jene saispas si c'est unproblème ounon car l'unest CSSet l'autrejs `gdgt-base'`Looks like you're using the same handle to register a script and style sheet. Not sure if this is a problem or not as one is CSS and the other js `gdgt-base'`
- 0
- 2015-07-09
- Brad Dalton
-
Vouspouveztoujoursprendre l'habitude detaper `jQuery` au lieu de` $ `tout letemps,et vousn'aurezjamais ceproblème dutout.Vousn'avezpasnonplusbesoin de hacks ou defermetures supplémentairespour résoudre unproblèmeinexistant de cettefaçon.You can always just get in the habit of typing `jQuery` instead of `$` all of the time, and then you never have this issue at all. You also don't need hacks or additional closures to solve a nonexistent problem that way.
- 0
- 2018-03-29
- mopsyd
-
- 2019-01-08
Pour d'autresidiots commemoi,je pensais contribuerici.:-)
Je viens depasser une heure carj'avais écrit
array( '' )
au lieu dearray()
dans les dépendances.Sachez simplement qu'il y a une différenceentre:
wp_enqueue_script( 'footerScript', get_stylesheet_directory_uri() . '/assets/js/appFooter.js', array( '' ), false, true );
et
wp_enqueue_script( 'footerScript', get_stylesheet_directory_uri() . '/assets/js/appFooter.js', array(), false, true );
... Lepremierne se chargerajamais.Le second lefera.:-)
La réponse de @ Robert_Huem'a conduit àma réponse.
For other idiots like myself, I thought I contribute here. :-)
I just spent an hour because I had written
array( '' )
instead ofarray()
in the dependencies.Just know, that there's a difference between:
wp_enqueue_script( 'footerScript', get_stylesheet_directory_uri() . '/assets/js/appFooter.js', array( '' ), false, true );
and
wp_enqueue_script( 'footerScript', get_stylesheet_directory_uri() . '/assets/js/appFooter.js', array(), false, true );
... The first one will never load. The second one will. :-)
@Robert_Hue's answer led me to my answer.
-
- 2019-01-08
Lors de l'enregistrementet de lamiseen file d'attente de scripts,vousn'avezpasbesoin d'appeler wp_register_script ()et wp_enqueue_script (). Appelez simplement wp_enqueue_script ().
La syntaxe debase de wp_enque_scriptest:
wp_enqueue_script( string $handle, string $src = '', array $deps = array(), string|bool|null $ver = false, bool $in_footer = false )
Maintenant,selon votre code,ça devrait être comme ça:function load_css_js() { wp_enqueue_style('gdgt-base-style', get_template_directory_uri() . '/css/gdgt-base.css'); wp_enqueue_style('gdgt-icon', get_template_directory_uri() . '/icons/css/gdgt.css'); wp_enqueue_script('gdgt-base-script', get_template_directory_uri() . '/js/gdgt-base.js', array( 'jquery' ) , '2019' true); } add_action('wp_enqueue_scripts', 'load_css_js');
[visite]: https://developer.wordpress.org/reference/functions/wp_enqueue_script/
documentationpourplus d'informations.When registering and enqueueing scripts, you don’t need to call wp_register_script() and wp_enqueue_script(). Just call wp_enqueue_script().
Basic syntax of wp_enque_script is :
wp_enqueue_script( string $handle, string $src = '', array $deps = array(), string|bool|null $ver = false, bool $in_footer = false )
Now as per your code, it should be like this :function load_css_js() { wp_enqueue_style('gdgt-base-style', get_template_directory_uri() . '/css/gdgt-base.css'); wp_enqueue_style('gdgt-icon', get_template_directory_uri() . '/icons/css/gdgt.css'); wp_enqueue_script('gdgt-base-script', get_template_directory_uri() . '/js/gdgt-base.js', array( 'jquery' ) , '2019' true); } add_action('wp_enqueue_scripts', 'load_css_js');
[visit] : https://developer.wordpress.org/reference/functions/wp_enqueue_script/
documentation for more information.
J'essaye demettreen file d'attente desfichiers JavaScripten utilisant wp_enqueue_script (),mais celane fonctionnepas dutout.Voicimon code:
Cependant,lorsqueje désenregistre le WP Javasciprtpar défautet quej'enregistrejquery ailleurs,celafonctionne.Qu'est-ce quipeut causer ceproblème?Mercipour l'aide!