Skip to content

Tutto per WordPress, lo sviluppo web — e non solo

🔗 Come aggiungere un link alla home nel menu di WordPress

🔗 Come aggiungere un link alla home nel menu di WordPress

Un menu di navigazione senza un link alla homepage è come una porta d’ingresso senza maniglia. Un visitatore atterra su una pagina interna tramite ricerca, legge il contenuto… e non ha idea di dove cliccare per raggiungere la homepage. Il logo nell’header non sempre aiuta; alcuni utenti cercano istintivamente una voce «Home» direttamente nel menu.

Prima della versione 3.0, WordPress non aveva questa opzione nell’editor standard dei menu, quindi bisognava modificare il codice o aggiungere un link personalizzato a mano. Ora tutto è più semplice: un paio di clic e il link alla home è al suo posto. E se sei uno sviluppatore o stai personalizzando un tema, c’è il filtro wp_nav_menu_items che risolve il compito con una singola funzione.

Qui sotto trovi entrambi i metodi: uno visuale per gli utenti normali e uno programmatico per chi lavora con il codice. In più vedremo quando il link va aggiornato e cosa fare se sparisce all’improvviso.

💡 Panoramica rapida:

  • Aggiungere un link alla home nel menu di WordPress tramite pannello di amministrazione in meno di un minuto, senza plugin.
  • Aggiungere il link in modo programmatico usando il filtro wp_nav_menu_items nel functions.php del tema.
  • Verificare e aggiornare l’URL dopo un cambio di dominio o il passaggio a HTTPS.

Metodo 1: dal pannello di amministrazione di WordPress

Questo metodo funziona con WordPress 3.0 e successivi, quindi su qualsiasi sito moderno. Non servono plugin né modifiche al codice.

Accedi al pannello di amministrazione e vai su Aspetto → Menu. A sinistra vedrai dei blocchi: «Pagine», «Articoli», «Link personalizzati» e altri in base ai plugin installati e ai tipi di contenuto.

Nel blocco Pagine, clicca sulla scheda Tutte (o «Mostra tutto» nelle versioni precedenti). La primissima voce è una pagina chiamata «Home». Seleziona la sua casella e clicca su Aggiungi al menu.

Blocco Pagine nell'editor dei menu di WordPress con la voce Home

Una volta aggiunta, la voce apparirà nella struttura del menu sulla destra. Trascinala nella posizione desiderata; di solito viene messa per prima o per ultima. Salva il menu cliccando su Salva menu e il link alla home sarà attivo sul sito.

Per impostazione predefinita, WordPress usa l’URL diretto della homepage per questa voce (ad esempio, https://vash-sait.ru/). È importante ricordarlo: se in seguito sposti il sito su un dominio diverso o passi da HTTP a HTTPS, il link manterrà il vecchio indirizzo. Dovrai aprire l’editor dei menu e correggere l’URL a mano, oppure eliminare la voce e aggiungerla di nuovo (WordPress inserirà automaticamente l’indirizzo attuale).

Metodo 2: aggiunta programmatica tramite un filtro

Se stai sviluppando un tema personalizzato o vuoi che il link alla home venga aggiunto automaticamente all’attivazione del tema, usa il filtro wp_nav_menu_items. Intercetta l’HTML delle voci di menu prima dell’output e ti permette di inserire il tuo elemento.

Inserisci il codice nel functions.php del tema attivo (o di un tema child, così non perdi le modifiche con gli aggiornamenti). Un’alternativa è il plugin Code Snippets: crei uno snippet, incolli il codice e lo attivi; le modifiche restano poi indipendenti dal tema.

Pagina del plugin Code Snippets in WordPress
1/**
2 * Adds a "Home" link to the main WordPress menu.
3 *
4 * @param string $items HTML markup of menu items.
5 * @param object $args wp_nav_menu() arguments.
6 * @return string
7 */
8function sdstudio_add_menu_home_link( $items, $args ) {
9 // Target menu location — replace 'main' with your own value
10 if ( 'main' !== $args->theme_location ) {
11 return $items;
12 }
13
14 $home_link = sprintf(
15 '<li class="menu-item"><a href="%s">%s</a></li>',
16 esc_url( home_url( '/' ) ),
17 esc_html__( 'Home', 'textdomain' )
18 );
19
20 // The link is added first — put $items . $home_link if you need it last
21 $items = $home_link . $items;
22
23 return $items;
24}
25add_filter( 'wp_nav_menu_items', 'sdstudio_add_menu_home_link', 10, 2 );

Il parametro chiave è 'main' nella condizione if. È lo slug dell’area menu (theme location) registrata dalla funzione register_nav_menu() nel tema. Puoi trovare il tuo slug nel functions.php del tema: cerca la chiamata a register_nav_menu() o register_nav_menus() e controlla il primo argomento. Il più delle volte è primary o main.

La funzione è sicura: esc_url() esegue l’escape dell’URL e esc_html__() esegue l’escape del testo del link supportando la traduzione. Se usi un tema child, sostituisci 'textdomain' con il text domain del tuo tema.

Dopo aver inserito il codice, aggiorna il sito e il link alla home apparirà automaticamente nel menu. Non serve rimuoverlo manualmente: basta commentare o cancellare la chiamata a add_filter() e tutto tornerà allo stato originale.

Un link alla home aggiunto dal pannello di amministrazione memorizza un URL hard-coded, quello presente nelle impostazioni del sito al momento dell’aggiunta. Tre scenari comuni in cui si rompe:

  • Passaggio da HTTP a HTTPS. La voce di menu continua a puntare a http://..., i browser potrebbero mostrare un avviso di contenuto misto oppure il redirect potrebbe fallire. Soluzione: apri l’editor dei menu, elimina la vecchia voce «Home» e aggiungila di nuovo; WordPress inserirà l’URL attuale con https://.

  • Cambio del dominio. Quando sposti un sito da un ambiente di sviluppo a produzione (staging.site.rusite.ru) o migri verso un dominio completamente nuovo. La voce di menu conserva il vecchio URL. Soluzione: come sopra (elimina e aggiungi di nuovo).

  • Spostamento da una sottodirectory alla root. Se il sito si sposta da site.ru/blog/ a site.ru/, tutti i link hard-coded si rompono. Dopo la migrazione, controlla TUTTE le voci di menu, non solo il link alla home.

Il metodo programmatico (via wp_nav_menu_items) non ha questi problemi: home_url('/') restituisce sempre l’indirizzo attuale della homepage dalle impostazioni di WordPress.

A proposito, se lavori spesso con i menu, dai un’occhiata alle impostazioni di navigazione in Aspetto → Personalizza, dove puoi gestire i menu in tempo reale con un’anteprima dal vivo. Per modifiche avanzate (aggiunta di icone alle voci, mega-menu) esistono strumenti dedicati, ma è un argomento per un altro articolo.

Video: aggiungere un pulsante home in 2 minuti

Se preferisci guardare invece di leggere, ecco un breve video in inglese con una dimostrazione passo passo a schermo:

⁉️🤔 Domande frequenti

Posso aggiungere un link alla home senza plugin o codice?

Sì, tramite l’editor standard dei menu di WordPress: Aspetto → Menu → blocco Pagine → seleziona «Home» → Aggiungi al menu. È una funzionalità nativa disponibile dalla versione 3.0.

Perché il link alla home è sparito dal menu dopo aver cambiato tema?

I menu in WordPress sono legati alle aree menu (theme location) registrate dal tema. Quando cambi tema, le vecchie aree spariscono e le nuove possono avere nomi diversi. Il tuo menu non è andato perso; è semplicemente diventato «non assegnato». Vai su Aspetto → Menu → scheda Gestisci posizioni e assegna il menu esistente a un’area del nuovo tema. Tutte le voci, incluso il link alla home, torneranno.

Il menu ha già una voce «Home», ma porta a una pagina specifica invece che alla root del sito. Come posso correggerlo?

Molto probabilmente è stata aggiunta al menu una pagina concreta intitolata «Home» invece della voce speciale di tipo «Pagina iniziale». Rimuovi quella voce dal menu, poi nel blocco Pagine trova la voce etichettata «Pagina iniziale» (WordPress la contrassegna in modo distinto) e aggiungila. Se questa etichetta non c’è, usa «Link personalizzati»: nel campo URL inserisci / e nel campo «Testo del link» scrivi «Home».

Come aggiungo il link alla home per ultimo nel menu invece che per primo?

Nel metodo programmatico, inverti l’ordine di concatenazione: invece di $home_link . $items scrivi $items . $home_link. Nell’editor visuale, trascina semplicemente la voce «Home» in fondo all’elenco e salva il menu.

È necessario usare esc_url() e home_url() nel codice?

Sì, è una best practice di WordPress. home_url('/') inserisce dinamicamente l’indirizzo attuale del sito dalle impostazioni, così non dovrai modificare il codice quando cambi dominio. esc_url() esegue l’escape dei caratteri speciali e protegge da attacchi XSS. Saltare l’escape nel codice di produzione è rischioso.

Il metodo con codice funziona su un’installazione WordPress multisite?

Sì, home_url( '/' ) in multisite restituisce l’URL del sito specifico all’interno della rete (quello indicato nelle impostazioni di quel sotto-sito). Ogni sito della rete avrà il proprio link alla home. Se hai bisogno di un comportamento diverso per siti diversi, avvolgi la chiamata a add_filter() in una condizione che verifichi l’ID del blog tramite get_current_blog_id().

Per prima cosa, verifica l’ovvio: hai effettivamente salvato il menu dopo aver aggiunto la voce? Il pulsante «Salva menu» è in fondo alla pagina; senza cliccarlo le modifiche non vengono applicate. Se il menu è salvato ma la voce manca, apri il sito in modalità incognito (la cache del browser a volte nasconde le modifiche recenti).

La seconda causa probabile è un plugin di caching (WP Rocket, W3 Total Cache, LiteSpeed Cache). Svuota la cache dal pannello di amministrazione del plugin e ricontrolla il sito.

Se ancora non funziona, passa temporaneamente a un tema predefinito (Twenty Twenty-Five o Twenty Twenty-Six). La voce è comparsa? Allora il problema è nel tema personalizzato; la sua funzione wp_nav_menu() potrebbe essere stata sovrascritta con i filtri rimossi. Controlla la chiamata a wp_nav_menu() nel template del tema: l’argomento 'items_wrap' non deve essere una stringa vuota e 'fallback_cb' deve essere false solo se disabiliti intenzionalmente il fallback.

Il codice del «Metodo 2» funziona su qualsiasi tema purché il theme_location sia corretto; serve da rete di sicurezza nel caso il metodo visuale fallisca per qualche motivo.

Un link alla home nel menu è un piccolo dettaglio che costruisce fiducia. Un visitatore che atterra su una pagina interna da una ricerca trova in una frazione di secondo la strada per tornare all’inizio e continua a esplorare. Senza, una parte del tuo pubblico chiuderà semplicemente la scheda. Due minuti nell’editor dei menu o dieci righe di codice, e questo punto di ingresso non andrà mai più perso.