In WordPress esistono modi giusti e sbagliati per eseguire una determinata azione. Il problema è che in WordPress spesso il modo sbagliato funziona come quello corretto. Questo è il caso ad esempio dell'inclusione di script JavaScript nel nostro tema.
Considerate il seguente codice:
function add_scripts() {
wp_register_script('lib', get_template_directory_uri() . '/js/lib.js', '1.0', true);
wp_register_script('script', get_template_directory_uri() . '/js/script.js', '1.0', array('lib'), true);
wp_enqueue_script('lib');
wp_enqueue_script('script');
}
add_action('wp_footer', 'add_scripts');
In questo caso l'errore sta nel fatto che abbiamo usato l'hook sbagliato, ossia wp_footer
. In realtà usando il valore true
nella funzione wp_register_script()
abbiamo già specificato che gli script andranno inseriti nel footer.
Il modo corretto è usare wp_enqueue_scripts
ma non in un'unica funzione come sopra, bensì in due funzioni distinte, una per la registrazione e l'altra per l'inclusione:
function my_register_scripts() {
wp_register_script('lib', get_template_directory_uri() . '/js/lib.js', '1.0', true);
wp_register_script('script', get_template_directory_uri() . '/js/script.js', '1.0', array('lib'), true);
}
add_action('wp_enqueue_scripts', 'my_register_scripts');
function my_enqueue_scripts() {
wp_enqueue_script('lib');
wp_enqueue_script('script');
}
add_action('wp_enqueue_scripts', 'my_enqueue_scripts');
In questo modo è molto più semplice aggiungere, rimuovere o semplicemente gestire i nostri script.