Tutorial WordPress affidabili, quando ne hai più bisogno.
Guida per principianti a WordPress
WPB Cup
25 Milioni+
Siti web che utilizzano i nostri plugin
16+
Anni di esperienza con WordPress
3000+
Tutorial WordPress di esperti

Come aggiungere correttamente JavaScript e stili in WordPress

Quando abbiamo iniziato a lavorare con WordPress, aggiungere JavaScript e CSS sembrava abbastanza semplice. Bastava inserire il codice direttamente nel tema o nel plugin e andare avanti.

Ma nel corso degli anni, noi (e molti dei nostri lettori) abbiamo imparato a nostre spese che questa scorciatoia può creare seri problemi. Da script in conflitto tra loro a siti interi che si rompono dopo un aggiornamento, ne abbiamo visti di tutti i colori.

La buona notizia è che WordPress ha effettivamente un modo corretto per caricare i tuoi script e stili, e una volta che lo conosci, ti risparmierai molti grattacapi in futuro.

In questa guida, ti mostreremo come aggiungere correttamente JavaScript e CSS in WordPress. Che tu stia creando un tema personalizzato o il tuo primo plugin, questi passaggi ti aiuteranno a farlo in modo sicuro e affidabile.

Aggiungere correttamente JavaScript e stili in WordPress

Errore comune nell'aggiungere script e fogli di stile in WordPress

Molti nuovi sviluppatori di plugin WordPress e temi commettono l'errore di aggiungere direttamente i loro script o CSS inline nei loro plugin e temi.

Alcuni usano erroneamente la funzione wp_head per caricare i loro script e fogli di stile.

<?php
add_action('wp_head', 'wpb_bad_script');
function wpb_bad_script() {
echo 'jQuery goes here';
}
?>

Sebbene il codice sopra possa sembrare più facile, è il modo sbagliato di aggiungere script in WordPress e porta a più conflitti in futuro.

Ad esempio, se carichi jQuery manualmente e un altro plugin carica jQuery tramite il metodo corretto, allora avrai jQuery caricato due volte. Se viene caricato su ogni pagina, ciò influenzerà negativamente la velocità e le prestazioni di WordPress.

È anche possibile che le due versioni siano diverse, il che può anche causare conflitti.

Detto questo, diamo un'occhiata al modo corretto di aggiungere script e fogli di stile.

Perché accodare script e stili in WordPress?

WordPress ha una forte community di sviluppatori. Migliaia di persone da tutto il mondo sviluppano temi e plugin per WordPress.

Per assicurarsi che tutto funzioni correttamente e che nessuno interferisca con il lavoro altrui, WordPress dispone di un sistema di accodamento (enqueuing). Questo sistema fornisce un modo programmabile per caricare JavaScript e fogli di stile CSS.

Utilizzando le funzioni wp_enqueue_script e wp_enqueue_style, si indica a WordPress quando caricare un file, dove caricarlo e quali sono le sue dipendenze.

Questo sistema consente inoltre agli sviluppatori di utilizzare le librerie JavaScript integrate che vengono fornite con WordPress, anziché caricare lo stesso script di terze parti più volte. Ciò riduce il tempo di caricamento della pagina e aiuta a evitare conflitti con altri plugin e temi.

Come accodare correttamente gli script in WordPress?

Caricare correttamente gli script in WordPress è molto facile. Di seguito è riportato un esempio di codice che potresti incollare nel file del tuo plugin, nel file functions.php del tuo tema, o in un plugin per snippet di codice per caricare correttamente gli script in WordPress.

?php
function wpb_adding_scripts() {
 
wp_register_script('my_amazing_script', plugins_url('amazing_script.js', __FILE__), array('jquery'),'1.1', true);
 
wp_enqueue_script('my_amazing_script');
}
  
add_action( 'wp_enqueue_scripts', 'wpb_adding_scripts' );  
?>

Spiegazione:

Abbiamo iniziato registrando il nostro script tramite la funzione wp_register_script(). Questa funzione accetta 5 parametri:

  • $handle – Handle è il nome univoco del tuo script. Il nostro si chiama “my_amazing_script”
  • $src – src è la posizione del tuo script. Stiamo usando la funzione plugins_url per ottenere l'URL corretto della nostra cartella dei plugin. Una volta che WordPress lo trova, cercherà il nostro nome file amazing_script.js in quella cartella.
  • $deps – deps è per le dipendenze. Poiché il nostro script utilizza jQuery, abbiamo aggiunto jQuery nell'area delle dipendenze. WordPress caricherà automaticamente jQuery se non è già in fase di caricamento sul sito.
  • $ver – Questo è il numero di versione del nostro script. Questo parametro non è obbligatorio.
  • $in_footer – Vogliamo caricare il nostro script nel footer, quindi abbiamo impostato il valore su true. Se vuoi caricare lo script nell'header, allora dovresti impostarlo su false.

Dopo aver fornito tutti i parametri in wp_register_script, possiamo semplicemente chiamare lo script in wp_enqueue_script() che fa accadere tutto.

L'ultimo passaggio consiste nell'utilizzare l'hook di azione wp_enqueue_scripts action hook per caricare effettivamente lo script. Poiché questo è un codice di esempio, lo abbiamo aggiunto proprio sotto tutto il resto.

Se stessi aggiungendo questo al tuo tema o plugin, allora puoi posizionare questo action hook dove lo script è effettivamente richiesto. Questo ti permette di ridurre l'impronta di memoria del tuo plugin.

Ora alcuni potrebbero chiedersi perché stiamo facendo il passo in più per registrare prima lo script e poi metterlo in coda? Beh, questo permette ad altri proprietari di siti di annullare la registrazione del tuo script senza modificare il codice principale del tuo plugin.

Mettere in coda correttamente gli stili in WordPress

Proprio come gli script, puoi anche mettere in coda i tuoi fogli di stile. Guarda l'esempio qui sotto:

<?php
function wpb_adding_styles() {
wp_register_style('my_stylesheet', plugins_url('my-stylesheet.css', __FILE__));
wp_enqueue_style('my_stylesheet');
}
add_action( 'wp_enqueue_scripts', 'wpb_adding_styles' );  
?>

Invece di usare wp_enqueue_script, ora stiamo usando wp_enqueue_style per aggiungere il nostro foglio di stile.

Nota che abbiamo usato l'hook di azione wp_enqueue_scripts sia per gli stili che per gli script. Nonostante il nome, questa funzione funziona per entrambi.

Negli esempi sopra, abbiamo usato la funzione plugins_url per puntare alla posizione dello script o dello stile che volevamo mettere in coda.

Tuttavia, se stai usando la funzione enqueue scripts nel tuo tema, allora usa semplicemente get_template_directory_uri() invece. Se stai lavorando con un tema figlio, allora usa get_stylesheet_directory_uri().

Di seguito è riportato un codice di esempio:

<?php
  
function wpb_adding_scripts() {
wp_register_script('my_amazing_script', get_template_directory_uri() . '/js/amazing_script.js', array('jquery'),'1.1', true);
wp_enqueue_script('my_amazing_script');
}
  
add_action( 'wp_enqueue_scripts', 'wpb_adding_scripts' );  
?>

Speriamo che questo articolo ti abbia aiutato a imparare come aggiungere correttamente JavaScript e stili in WordPress. Potresti anche voler studiare il codice sorgente dei migliori plugin WordPress per alcuni esempi di codice reali, o consultare la nostra guida su come aggiungere facilmente JavaScript nei post o nelle pagine di WordPress.

Se ti è piaciuto questo articolo, iscriviti al nostro canale YouTube per tutorial video su WordPress. Puoi anche trovarci su Twitter e Facebook.

Dichiarazione: Il nostro contenuto è supportato dai lettori. Ciò significa che se fai clic su alcuni dei nostri link, potremmo guadagnare una commissione. Vedi come è finanziato WPBeginner, perché è importante e come puoi supportarci. Ecco il nostro processo editoriale.

Il Toolkit WordPress Definitivo

Ottieni l'accesso GRATUITO al nostro toolkit - una raccolta di prodotti e risorse relative a WordPress che ogni professionista dovrebbe avere!

Interazioni del lettore

36 CommentsLeave a Reply

  1. Questo post è un po' tecnico ma mi piace perché mi occupo di sviluppo WordPress, mi ha fatto imparare di più a usare PHP e ad aggiungere fogli di stile e script nel modo corretto. Le best practice sono fornite in questo articolo in modo che non ci siano conflitti tra i codici in futuro.

  2. Ciao,
    Ho seguito quello che è scritto qui ma ora ottengo una pagina bianca vuota sul mio sito web. Qualcuno potrebbe darmi un suggerimento?
    Grazie

  3. Questo è carino, anche se la mia pratica abituale è aggiungere wp_enqueue_script/style in una singola riga senza registrarli. I programmatori devono prestare attenzione ai parametri, forse una piccola spiegazione a riguardo sarebbe utile. Ad esempio, le diverse versioni di jquery (il tuo script jquery potrebbe richiedere una versione diversa da quella di wordpress) e dove aggiungerlo (intestazione o piè di pagina, determinato dal parametro true/false). Lo script jquery deve essere aggiunto nell'intestazione (quindi è necessario passare 'false' come valore del parametro), altrimenti potrebbe non funzionare.

  4. Ci sono spesso molti style.css.
    Come posso garantire il corretto ordine di caricamento con enque e assicurarmi che il CSS del child venga caricato per ultimo?

    Saluti dalla Germania
    Hansjörg

  5. Come passo un parametro vuoto a register_script? Voglio assicurarmi che lo script venga caricato in fondo alla pagina ma non riesco a trovare informazioni se questo è il comportamento predefinito o meno

    • Bonjour,

      Grazie per la tua eccellente risorsa. Merci !!!

      Sono un po' un novizio e sto appena iniziando il mio percorso per imparare PHP e come WordPress usa wp_enqueue_script e wp_register_script per aggiungere JavaScript e CSS.

      Utilizzo questo plugin gratuito chiamato Easy Code Manager per aiutarmi a eseguire i tuoi esempi:
      Tuttavia, non sono sicuro se questo sia il plugin giusto da usare.

      Ho letto prima che non è la migliore idea modificare il codice in functions.php, quindi mi chiedo se questo vada bene?

      Non cambierà con un aggiornamento del tema?
      Scusa per la domanda, sto ancora imparando WordPress.

      Grazie,
      Kerry

  6. Voglio aggiungere un annuncio Amazon
    Ho provato ad aggiungerlo nel widget di testo, ma risulta vuoto.
    Di seguito il codice-

    Questo è il mio sito-
    Aiutami. Come aggiungo js al mio sito?

  7. ho inserito un javascript usando questo plugin ma ora devo rimuoverlo, ho provato a disinstallare e disattivare il plugin ma il javascript viene ancora eseguito

  8. Salve,
    Sto usando il tema esteem e volevo aggiungere alcune funzionalità javascript al mio sito web come il lightbox. Ho creato un tema figlio e il codice è il seguente. in functions.php.

    e sto ricevendo un errore: - Parse error: syntax error, unexpected '{' in E:\InstantWP_4.5\iwpserver\htdocs\wordpress\wp-content\themes\esteem-child\functions.php on line 18
    Per favore Aiuto sto usando Sublime come mio editor di testo.
    Per favore Aiuto!!!!!

    • C'è una { inaspettata nel codice. Vai alla riga 18 del tuo file functions e poi studia attentamente il codice. Potresti aver dimenticato qualche piccolo pezzo di codice come un ; mancante

      Amministratore

  9. ciao..... sto aggiungendo un file .js nella directory js di wordpress e ne do il riferimento in funcation.php ma non funziona

    wp_enqueue_script( ‘any-navigation’, get_template_directory_uri() . ‘/js/menu.js’);

  10. Grazie mille! Stavo cercando di aggiungere un file .js personalizzato, ma questa è la prima spiegazione che register_script fosse necessario.

  11. Ehi, ottimo tutorial. Sto avendo un problema nell'aggiungere uno script JavaScript relativo a Google Analytics, come descritto qui: Ho inserito lo script nella cartella 'js' del mio child theme (avendo prima rimosso l'html dal codice).

    Quando carico la pagina continuo a ricevere l'errore:

    ReferenceError: Can’t find variable: ga (anonymous function)myscript.js:6

    …e mi è appena venuto in mente che forse devo aggiungere 'analytics.js' come dipendenza!

    Does that sounds right? And if so, how would I add analytics as a dependency for my script? I’ve tried experimenting here to no avail :(

  12. C'è un plugin per la stessa cosa... sono un principiante e non posso giocare con il codice... Aiuto, signore

  13. Ciao. Grazie per questo fantastico post tutorial! Ma quando dici "dove caricare lo script" puoi solo definire head o footer (in tutte le pagine web intere!)? Potresti definire una pagina specifica per caricarlo? Ne ho bisogno solo in una. Grazie in anticipo e continua così! Saluti.

  14. Sono un principiante assoluto in js ma conosco l'html. Voglio mettere questo su una pagina wordpress:

    In pratica, è un widget per partecipare a una GoToMeeting. Questo funziona se lo inserisci semplicemente nel body di una pagina html, ma in Wordpress viene soppresso. Puoi darmi una versione "per principianti" su come farlo funzionare?

  15. Per quanto riguarda il caricamento dello stile, alla riga 6, wp_register_script, credo dovrebbe essere wp_register_style.

  16. Mi piace molto il tuo sito, è pieno di consigli utili, tuttavia sembra che tu non lo stia facendo "nel modo giusto" per l'enqueue CSS, anche se il tuo titolo dice così :=) Il modo giusto sarebbe:

    wp_register_style( ‘my-css-style’, get_template_directory_uri() . ‘/css/style.css’, array(), ‘1.0’, ‘all’ );
    wp_enqueue_style( ‘my-css-style’ );

    Continua così… Saluti!

  17. Grazie per lo sforzo che ci metti. Sembra sbagliato usare wp_enque_script per caricare fogli di stile. WordPress potrebbe eventualmente generare script invece della sintassi per i fogli di stile.

    Lo incorpori davvero in quel modo?

    • Questo tutorial mostra come caricare file JavaScript e fogli di stile per i tuoi temi o plugin in WordPress. Se per Incorpora intendevi come visualizziamo il codice negli articoli, allora usiamo il plugin Syntax Highlighter per quello.

      Amministratore

  18. Ciao, sono un po' nuovo nel theming di WordPress e leggendo di questi argomenti, volevo chiederti qualcosa a riguardo. Se voglio aggiornare il link della libreria jquery, come faccio o dove trovo il link? Ci ho provato ma non riesco a trovarlo. Grazie in anticipo per il tuo aiuto.

    • Se per aggiornare il link della libreria jquery intendi aggiungere jquery dalla libreria di Google. WordPress viene fornito con jquery e per caricarlo nel tuo tema usa questa riga nel tuo tema:

      <?php wp_enqueue_script('jquery'); ?>

      Amministratore

      • ok, quindi se voglio avere l'ultima versione di jquery, uso solo quella riga?, perché qualcuno mi ha detto di usare un plugin solo per quello, ma volevo imparare a farlo senza un plugin.

        • Grazie per la tua risposta, ho trovato il post relativo a quel problema qui sul tuo sito.

  19. Utile Syed, grazie.
    Recentemente ho avuto un problema nel caricare un file css usando _underscore come framework, anche se il foglio di stile si chiamava mycustomstyles.css il tema stava chiamando mycustomstyles.css?ver=xx e il tema non stava caricando il file a causa del nome del file aggiungendo ?ver=xx alla fine del nome.
    C'entra qualcosa con $ver predefinito?

Lascia una risposta

Grazie per aver scelto di lasciare un commento. Tieni presente che tutti i commenti sono moderati secondo la nostra politica sui commenti, e il tuo indirizzo email NON verrà pubblicato. Si prega di NON utilizzare parole chiave nel campo del nome. Avviamo una conversazione personale e significativa.