Le codex WordPress dit:
$ in_footer
(booléen) (facultatif) Normalement, les scripts sont placés dans la section. Si ce paramètre est vrai, le script est placé au bas de la fenêtre. Cela nécessite que le thème ait le hook wp_footer () à la place appropriée. Notez que vous devez mettre votre script en file d'attente avant l'exécution de wp_head, même s'il sera placé dans le pied de page. (Nouveau dans WordPress 2.8) Par défaut: false
J'ai donc ajouté true
après le src path
de chaque script:
/**
* JavaScript
*/
function my_scripts_method() {
wp_deregister_script( 'jquery' );
wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js', true );
wp_enqueue_script( 'jquery' );
}
add_action('wp_enqueue_scripts', 'my_scripts_method');
function media_queries_script() {
wp_register_script( 'mediaqueries', get_template_directory_uri() . '/js/css3-mediaqueries.js', true );
wp_enqueue_script( 'mediaqueries' );
}
add_action('wp_enqueue_scripts', 'media_queries_script');
function custom_script() {
wp_register_script( 'custom', get_template_directory_uri() . '/js/custom.js', true );
wp_enqueue_script( 'custom' );
}
add_action('wp_enqueue_scripts', 'custom_script');
function replace_script() {
wp_register_script( 'replace', get_template_directory_uri() . '/js/jquery.ba-replacetext.min.js', true );
wp_enqueue_script( 'replace' );
}
add_action('wp_enqueue_scripts', 'replace_script');
Mais les scripts sont toujours inclus dans l'en-tête.
Des suggestions pour résoudre ce problème?
Où avez-vous mis votre code?
wp_register_script();
, pas dans la wp_enqueue_script() ;
la fonction est:
<?php wp_enqueue_script('handle', 'src', 'deps', 'ver', 'in_footer'); ?>
sens
<?php wp_enqueue_script('NameMySccript', 'path/to/MyScript',
'dependencies_MyScript', 'VersionMyScript', 'InfooterTrueorFalse'); ?>
PAR EXEMPLE.
<?php wp_enqueue_script('my_script', WP_CONTENT_URL . 'plugins/my_plugin/my_script.js', array('jquery', 'another_script'), '1.0.0', true); ?>
<?php wp_footer(); ?>
à la fin de la page?3.ajouter l'action avec add_action('wp_print_scripts', 'your function');
Cela étant dit, votre meilleure pratique 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');
Vous transmettez une valeur bool au paramètre dependency. Essaye ça:
wp_enqueue_script(
'replace',
get_template_directory_uri().'/js/jquery.ba-replacetext.min.js',
array('jquery'),
'',
true
);
J'ai eu le même problème et après quelques recherches, il me manquait cette fonction dans mon thème personnalisé:
<?php wp_footer();?>
J'aimerais simplifier la réponse ici. Lorsque vous utilisez wp_enqueue_script ou wp_register_script pour charger un script dans le pied de page, vous devez vous assurer d'inclure les autres paramètres, même s'ils sont vides.
J'essayais..
wp_register_script( 'rrssb', get_stylesheet_directory_uri() . '/includes/rrssb.min.js', true);
Ce qui n'a pas fonctionné comme l'a remarqué @janoChen. Wordpress appelle à
wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer );
Vous devez donc inclure '',
pour les paramètres que vous n'utilisez pas si vous voulez déclarer la fonction inline. Par conséquent, le code ci-dessous fonctionne comme prévu.
wp_register_script( 'rrssb', get_stylesheet_directory_uri() . '/includes/rrssb.min.js', '', '', true);
Ensuite, vous pouvez déclarer la fonction dans un tableau tel que le montre le format @Brian Fegter.
Si vous mettez un script en file d'attente dans l'en-tête mais déclarez une dépendance à un script placé en file d'attente dans le pied de page, WordPress déplace le script de pied de page dans l'en-tête pour le rendre disponible au (x) script (s) dépendant (s).
Selon la documentation officielle de WordPress (dernière vérification - mai 2018):
https://developer.wordpress.org/reference/functions/wp_enqueue_script/
et expérience personnelle de 7 ans et plus.
Vous devriez essayer de toujours utiliser la fonction ' wp_enqueue_scripts ' pour une meilleure compatibilité avec les plugins/thèmes installés.
add_action('wp_enqueue_scripts','your_plugin_enqueue');
Vous pouvez trouver plus d'informations sur l'utilisation de la documentation officielle Utilisation ici
/**** 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 vous trouvez cette réponse utile, donnez-lui un "▲" (ArrowUP), si vous pensez qu'elle peut être améliorée, veuillez commenter ci-dessous.