Which action to hook wp_enqueue_script to? wp_head or wp_enqueue_scripts? [duplicate]

I took a long time figure out the right way for this! Here’s what I follow now:

Use case: In a plugin’s admin page

Hook: admin_print_scripts-<page hook> OR <the php file name for your plugin>

$hook = add_menu_page(...) / add_submenu_page(...);
add_action('admin_print_scripts-'.$hook, 'my_callback');

Use case: On all admin pages

Hook: admin_print_scripts

add_action('admin_print_scripts', 'my_callback');

Use case: On all front end pages

Hook: wp_enqueue_scripts

add_action('wp_enqueue_scripts', 'my_callback');

And the callback:

function my_callback(){
    wp_enqueue_script(....);
}

Note: Use the same for enqueueing styles too (wp_enqueue_style)!

Edit: I checked the codex for admin_print_scripts, they now suggest to use admin_enqueue_scripts instead. I ran a search through version 3.4.1 core files, and found they use admin_print_scripts-<hook> internally! So you can use it too!

It works flawlessly!

Leave a Comment