Impossible de mettre les scripts en file d'attente dans le pied de page?
6 réponses
- votes
-
- 2012-01-05
Où avez-vousmis votre code?
- les arguments "vrais" vont dans le
wp_register_script();
,pas dans lewp_enqueue_script() ;
lesfonctions sont:
<?php wp_enqueue_script('handle', 'src', 'deps', 'ver', 'in_footer'); ?>
signification
<?php wp_enqueue_script('NameMySccript', 'path/to/MyScript', 'dependencies_MyScript', 'VersionMyScript', 'InfooterTrueorFalse'); ?>
Parexemple
<?php wp_enqueue_script('my_script', WP_CONTENT_URL . 'plugins/my_plugin/my_script.js', array('jquery', 'another_script'), '1.0.0', true); ?>
- votrethème a-t-il
<?php wp_footer(); ?>
à lafin de lapage?
3. ajoutez l'action avec
add_action('wp_print_scripts', 'your function');
Cela étant dit,votremeilleurepratique serait:
<?php if (function_exists('load_my_scripts')) { function load_my_scripts() { if (!is_admin()) { wp_deregister_script( 'jquery' ); wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js'); wp_enqueue_script('jquery'); wp_register_script('myscript', bloginfo('template_url').'/js/myScript.js'__FILE__), array('jquery'), '1.0', true ); wp_enqueue_script('myscript'); } } } add_action('init', 'load_my_scripts'); ?>
ou
add_action('wp_print_scripts', 'dl_register_js');
Where did you put your code ?
- the "true" arguments goes in the
wp_register_script();
, not thewp_enqueue_script() ;
the functions is:
<?php wp_enqueue_script('handle', 'src', 'deps', 'ver', 'in_footer'); ?>
meaning
<?php wp_enqueue_script('NameMySccript', 'path/to/MyScript', 'dependencies_MyScript', 'VersionMyScript', 'InfooterTrueorFalse'); ?>
E.G.
<?php wp_enqueue_script('my_script', WP_CONTENT_URL . 'plugins/my_plugin/my_script.js', array('jquery', 'another_script'), '1.0.0', true); ?>
- does your theme have
<?php wp_footer(); ?>
at the end of the page ?
3.add the action with
add_action('wp_print_scripts', 'your function');
That being said , your best practice would be :
<?php if (function_exists('load_my_scripts')) { function load_my_scripts() { if (!is_admin()) { wp_deregister_script( 'jquery' ); wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js'); wp_enqueue_script('jquery'); wp_register_script('myscript', bloginfo('template_url').'/js/myScript.js'__FILE__), array('jquery'), '1.0', true ); wp_enqueue_script('myscript'); } } } add_action('init', 'load_my_scripts'); ?>
or
add_action('wp_print_scripts', 'dl_register_js');
-
Merci,celafonctionnemaintenantmaisj'ai réalisé queplacer le `true` dans` wp_enqueue` ou `wp-register_script`fonctionnaittrèsbien.Thanks it is working now but I realized that placing the `true` in either `wp_enqueue` or `wp-register_script` work just fine.
- 0
- 2012-01-05
- janoChen
-
@ krembo99 Le [`wp_register_script ()`] (http://queryposts.com/function/wp_register_script/)prend lemêmenombre d'argumentset les deux s'ajoutent autableauglobal `$ wp_scripts`et au sous-tableau` data`.Combiné lesmauvaisesinformations avec lamauvaise lisibilité de votre réponse,je dois vous donner un -1 (sera supprimé lors de la retouche).@krembo99 The [`wp_register_script()`](http://queryposts.com/function/wp_register_script/) takes the same amount of arguments and both add to the `$wp_scripts` global array and the `data` subarray. Combined the wrong information with the awfull readability of your answer, I've to give you a -1 (will be removed on rework).
- 4
- 2013-01-05
- kaiser
-
Pourmoi,lapiècemanquante dupuzzle était ` Php wp_footer ();?> `n'existaitpas dans lemodèle depage.Après cela,leparamètre `true` dans` wp_enqueue_script` afait sontravail.For me the missing piece of the puzzle was `` did not exist in the page template. After that, the `true` parameter in `wp_enqueue_script` did its job.
- 1
- 2019-04-22
- joehanna
-
- 2012-01-05
Vouspassez une valeurbooléenne auparamètre de dépendance.Essayez ceci:
wp_enqueue_script( 'replace', get_template_directory_uri().'/js/jquery.ba-replacetext.min.js', array('jquery'), '', true );
You are passing a bool value to the dependency param. Try this:
wp_enqueue_script( 'replace', get_template_directory_uri().'/js/jquery.ba-replacetext.min.js', array('jquery'), '', true );
-
C'esttechniquement labonne réponse à sa questionbasée sur le code de la question.This is technically the right answer for his question based on the code in the question.
- 2
- 2018-02-15
- AndyWarren
-
-
- 2014-09-10
Je voudrais simplifier la réponseici. Lorsque vous utilisez wp_enqueue_script ou wp_register_scriptpour charger un script dans lepied depage,vous devez vous assurer d'inclure également les autresparamètres,même s'ils sont vides.
J'essayais ...
wp_register_script( 'rrssb', get_stylesheet_directory_uri() . '/includes/rrssb.min.js', true);
Ce quin'apasfonctionné comme @janoChen l'a remarqué.Wordpress appelle à
wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer );
Vous devez doncinclure
'',
pour lesparamètres que vousn'utilisezpas si vous souhaitez déclarer lafonctionen ligne.Par conséquent,le code ci-dessousfonctionne commeprévu.wp_register_script( 'rrssb', get_stylesheet_directory_uri() . '/includes/rrssb.min.js', '', '', true);
Par la suite,vouspouvez déclarer lafonction dans untableau auformat comme lemontre @Brian Fegter.
I'd like to simplify the answer here.. When using wp_enqueue_script or wp_register_script to load a script in the footer, you need to make sure you include the other params too, even if they are blank.
I was trying..
wp_register_script( 'rrssb', get_stylesheet_directory_uri() . '/includes/rrssb.min.js', true);
Which didn't work as @janoChen has noticed. Wordpress calls for
wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer );
So you need to include
'',
for the parameters you are not using if you want to declare the function inline. Therefore the code below works as planned.wp_register_script( 'rrssb', get_stylesheet_directory_uri() . '/includes/rrssb.min.js', '', '', true);
Subsequently you can declare the function in an array like format like @Brian Fegter shows.
-
Vous devezfournir les chaînes vides uniquement lorsque desespaces réservés sontnécessaires.You need to provide the empty strings only where placeholders are needed.
- 0
- 2015-09-30
- s_ha_dum
-
Ah oui!Bien sûr,uniquement `` '',`où lesparamètres sont obligatoires,pasfacultatifs.Ah yes! Of Course, only `'',` where parameters are required, not optional.
- 0
- 2015-10-01
- Andrew-ThinkUp
-
- 2015-03-25
Si vousmettezen file d'attente un script dans l'en-têtemais déclarez une dépendance à un scriptmisen file d'attente dans lepied depage,WordPress déplacera le script depied depage vers l'en-têtepour le rendre disponiblepour le ou les scripts dépendants.
If you enqueue a script to the header but declare a dependency to a script enqueued to the footer, WordPress will move the footer script to the header to make it available to the dependent script/s.
-
- 2018-05-16
Selon la documentation officielle de WordPress (dernière vérification -mai 2018):
https://developer.wordpress.org/reference/functions/wp_enqueue_script/
et uneexpériencepersonnelle deplus de 7 ans.
-
Vous devrieztoujoursessayer d'utiliser lafonction ' wp_enqueue_scripts 'pour unemeilleure compatibilité avec lesplugins/thèmesinstallés.
add_action('wp_enqueue_scripts','your_plugin_enqueue');
-
Pouren savoirplus sur l'utilisation de la documentation officielle, Utilisationici
/**** wp_register_script, wp_enqueue_script, wp_dequeue_script *** *** Personal recommendation * - I strongly recommend registering all scripts before enqueueing, * again -> for better compatibility with other developers. * :::: For example, so others could manipulate the position * of your scripts using the wp_dequeue_*type* method. * (wp_dequeue_script, wp_dequeue_style,...) *** Official Docs * $in_footer * - (bool) (Optional) Whether to enqueue the script before </body> instead of in the <head>. Default 'false'. * - Default value: false * ***/ // examples: function your_plugin_enqueue(){ wp_dequeue_script('some_script(s)'); // remove conflicting script wp_register_script( $handle, $src, $deps, $ver, $in_footer=true ); wp_enqueue_script($handle); wp_register_script('some_script(s)', $src, $deps, $ver, $in_footer=true); // re-enqueue scripts after yours for example to elimination of conflicts wp_enqueue_script('some_script(s)'); } add_action('wp_enqueue_scripts','your_plugin_enqueue');
P.S. Si voustrouvez cette réponse utile,veuillez lui donner un '▲' ( FlècheUP ),si vouspensez qu'ellepeut être améliorée,veuillez commenter ci-dessous.
According to the official WordPress documentation (Last Checked - May 2018):
https://developer.wordpress.org/reference/functions/wp_enqueue_script/
and personal experience of 7+ years.
You should try always use 'wp_enqueue_scripts' function for better compatibility with installed plugins/themes.
add_action('wp_enqueue_scripts','your_plugin_enqueue');
You can find more about using official docs Usage here
/**** wp_register_script, wp_enqueue_script, wp_dequeue_script *** *** Personal recommendation * - I strongly recommend registering all scripts before enqueueing, * again -> for better compatibility with other developers. * :::: For example, so others could manipulate the position * of your scripts using the wp_dequeue_*type* method. * (wp_dequeue_script, wp_dequeue_style,...) *** Official Docs * $in_footer * - (bool) (Optional) Whether to enqueue the script before </body> instead of in the <head>. Default 'false'. * - Default value: false * ***/ // examples: function your_plugin_enqueue(){ wp_dequeue_script('some_script(s)'); // remove conflicting script wp_register_script( $handle, $src, $deps, $ver, $in_footer=true ); wp_enqueue_script($handle); wp_register_script('some_script(s)', $src, $deps, $ver, $in_footer=true); // re-enqueue scripts after yours for example to elimination of conflicts wp_enqueue_script('some_script(s)'); } add_action('wp_enqueue_scripts','your_plugin_enqueue');
P.S. If you find this answer useful, please give it an '▲' (ArrowUP), if you think that it can be improved, please comment below.
Le codex WordPress dit :
( anciennepage de codex )
J'ai donc ajouté
true
après lesrc path
:Mais les scripts sonttoujoursinclus dans l'en-tête.
Des suggestionspour résoudre ceproblème?