In my functions.php, I have set a register_scripts() and load_scripts(), and hooked them to the ‘init’ action.
I have registered all the scripts to be loaded in the footer, in order to optimize page load.
Some of the scripts I’ve registered in register_scripts() are not enqueued in load_scripts() because I only want to load them when / if they are needed.
So for example, if the page being rendered includes the template part ‘gallery.php’, which needs ‘jquery-gallery’, I would like to enqueue it from that file, but only after the rest of the footer scripts have been loaded. I also need to do this with inline scripts.
Hope I explained myself well… If not please ask.
If you enqueue the script to the footer while the page is being rendered (after the “wp_head” hook), you will have to manually add wp_print_scripts (or wp_print_footer_scripts) to the wp_footer action, like this: