The WordPress codex says:
$in_footer
(boolean) (optional) Normally scripts are placed in the
section. If this parameter is true the script is placed at the bottom
of the . This requires the theme to have the wp_footer() hook in
the appropriate place. Note that you have to enqueue your script
before wp_head is run, even if it will be placed in the footer. (New
in WordPress 2.8) Default: false
So I added true
after each script’s src path
:
/**
* 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');
But the scripts are still being included in the header.
Any suggestions to fix that?
Where did you put your code ?
wp_register_script();
, not thewp_enqueue_script() ;
the functions is:
<?php wp_enqueue_script('handle', 'src', 'deps', 'ver', 'in_footer'); ?>
meaning
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);
?>
<?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 :
or
add_action('wp_print_scripts', 'dl_register_js');
You are passing a bool value to the dependency param. Try this:
I had the same problem and after doing some search I was missing this function in my custom theme:
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..
Which didn’t work as @janoChen has noticed. WordPress calls for
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.Subsequently you can declare the function in an array like format like @Brian Fegter shows.
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.
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.
You can find more about using official docs Usage here
P.S. If you find this answer useful, please give it an ‘â²’ (ArrowUP), if you think that it can be improved, please comment below.