Quando sviluppiamo in WordPress è necessario gestire correttamente il caricamento di script e fogli di stile.
A questo scopo, WordPress mette a disposizione due funzioni principali: wp_register_script() e wp_enqueue_script().
Spesso vengono confuse, ma hanno ruoli distinti e complementari.
Indice
wp_register_script(): registrazione dello script
La funzione wp_register_script() serve a registrare uno script all’interno di WordPress, che verrà poi messo in coda tramite la funzione wp_enqueue_script().
Bisogna specificare l’handle (un nome univoco) e le relative informazioni, come percorso, dipendenze e versione.
In pratica, si dice a WordPress: “Questo script esiste, e se in futuro qualcuno vorrà utilizzarlo, ecco i dettagli per caricarlo”.
Sintassi:
wp_register_script(
string $handle,
string $src,
array $deps = array(),
string|bool|null $ver = false,
array|bool $args = false
);
$handle: identificativo unico dello script (es. my-script).
$src: percorso del file JS.
$deps: array di dipendenze (es. array('jquery')).
$ver: versione dello script.
$args: se true, lo script viene caricato nel footer.
Se viene definito come array, può contenere
- ‘
strategy‘'strategy' => 'defer''strategy' => 'async'
- ‘
in_footer‘: setrue, lo script viene caricato nel footer.
Esempio:
wp_register_script(
'my-script',
get_template_directory_uri() . '/js/my-script.js',
array('jquery'),
'1.0.0',
true
);
Questo codice registra lo script ma non lo carica ancora nella pagina.
wp_enqueue_script(): messa in coda dello script
La funzione wp_enqueue_script() invece serve a mettere in coda uno script, cioè a dire a WordPress che lo script deve essere effettivamente caricato nella pagina.
Sintassi:
wp_enqueue_script(
string $handle,
string $src = '',
array $deps = array(),
string|bool|null $ver = false,
bool $in_footer = false
);
Se lo script è già stato registrato con wp_register_script(), basta passare solo l’handle.
wp_enqueue_script('my-script');
Se invece non è stato registrato in precedenza, wp_enqueue_script() può anche registrarlo e caricarlo in un’unica operazione.
wp_enqueue_script(
'my-script',
get_template_directory_uri() . '/js/my-script.js',
array('jquery'),
'1.0.0',
true
);
In questo caso, la registrazione e la messa in coda avvengono contemporaneamente.
Riassumendo
wp_register_script() prepara lo script, lo rende disponibile a WordPress, ma non lo carica.
wp_enqueue_script() mette lo script in coda per il caricamento effettivo nella pagina.
Quando usare wp_register_script()?
L’uso di wp_register_script() è utile quando:
- Uno script potrebbe essere usato in più parti del tema o plugin, ma non sempre caricato.
- Si vuole lasciare che altri plugin o temi decidano se metterlo in coda.


