wp_enqueue_scripts, wp_register_scripts, wp_print_scripts: i’m confused

The question:

  • I’ve been reading up a bit on this subject, but the more I read – the more confused I get.

  • Can someone explain to me in short what’s the exact difference between wp_enqueue_scripts, wp_register_scripts and wp_print_scripts?

  • For example, I have the following code in my functions.php – and it’s working, but I do not understand why I can not use wp_print_scripts for the stylesheets, whereas the code still works if I use wp_enqueue_scripts for the javascript files:

    add_action('wp_print_scripts', 'add_my_js');
    function add_my_js(){
        if(!is_admin()){
            wp_enqueue_script('default',  get_bloginfo('stylesheet_directory').'/js/default.js', array('jquery'));
        }
    }
    
    add_action('wp_enqueue_scripts', 'add_my_stylesheet');
    function add_my_stylesheet() {
        wp_register_style('default', get_bloginfo( 'stylesheet_url'));
        wp_enqueue_style( 'default');
    }
    

The Solutions:

Below are the methods you can try. The first solution is probably the best. Try others if the first one doesn’t work. Senior developers aren’t just copying/pasting – they read the methods carefully & apply them wisely to each case.

Method 1

wp_print_scripts is the action that runs when scripts are output to the template. wp_register_script and wp_enqueue_script are functions for registering/enqueueing scripts to be output when wp_print_scripts runs.

you can’t register or enqueue styles in the wp_print_scripts action hook because styles have already been output in the wp_print_styles hook, which runs before wp_print_scripts.

refer to the action reference to see the order things are executed in in a request:

22. wp_head
23. wp_enqueue_scripts
24. wp_print_styles
25. wp_print_scripts


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Comment