
🔐 Pulsante di login e logout nel menu di WordPress: una guida passo passo 2026
Standard WordPress non può mostrare un pulsante «Login» per i visitatori non autenticati e un pulsante «Logout» per gli utenti autenticati nella stessa posizione del menu. A prima vista sembra una cosa di poco conto. Ma per un sito con una dashboard membri, un'area riservata o un forum è un'esigenza fondamentale, e senza di essa la navigazione diventa un terno al lotto.
In precedenza questo compito era gestito dal plugin BAW Login/Logout Menu. L'autore ha interrotto il progetto nel 2025, lasciando migliaia di siti senza aggiornamenti. Il suo successore diretto ha preso il testimone: Login or Logout Menu Item con oltre 20.000 installazioni attive e una valutazione di 4,8 su WordPress.org.
Abbiamo raccolto tutto in un'unica guida: dall'installazione del plugin in due minuti ai redirect personalizzati per ruolo e alla disabilitazione della barra di amministrazione per gli utenti normali.
💡 Panoramica rapida:
- Installare il plugin Login or Logout Menu Item e configurare tre campi di redirect
- Aggiungere una voce di menu «Login|Logout» tramite l'editor classico o a blocchi
- Impostare una logica di dettaglio tramite snippet in functions.php: redirect per ruolo, logout senza conferma, sostituzione di wp-login.php
- Nascondere la barra di amministrazione agli utenti normali e bloccare il loro accesso a wp-admin
Metodo 1: plugin Login or Logout Menu Item, veloce e senza codice

Il modo più semplice per aggiungere un pulsante dinamico di login e logout è il plugin Login or Logout Menu Item. È il successore diretto di BAW Login/Logout Menu, riscritto da zero da uno dei contributori del progetto originale. A giugno 2026 il plugin conta oltre 20.000 installazioni attive, 23 recensioni e una valutazione di 4,8 stelle. La versione 1.3.2 è stata testata fino a WordPress 7.0.
Perché questo plugin invece di una soluzione in codice? Il plugin non tocca functions.php e non si romperà quando cambi tema. Supporta l'editor a blocchi e la voce «Login|Logout» può essere aggiunta a un blocco Navigazione tramite la normale ricerca. Dispone inoltre di una pagina di impostazioni dedicata: niente URL magici nei campi del menu, tutto è trasparente.
Installazione e configurazione
Installa il plugin nel modo standard: Plugin → Aggiungi nuovo, digita Login or Logout Menu Item, clicca Installa e Attiva. Dopo l'attivazione compare una nuova voce nel menu di amministrazione: Impostazioni → Login or Logout. Ci sono tre campi, ed ecco cosa significano:
- URL pagina di login: l'indirizzo della pagina di login. Per la maggior parte dei siti
/wp-login.phpè sufficiente. Se usi una pagina di login personalizzata (ad esempio/login/tramite MemberPress o WooCommerce), inseriscila qui. - URL redirect dopo login: dove atterra l'utente dopo aver effettuato il login. Di solito
/account/o semplicemente/per la homepage. Tieni presente che plugin per membership come MemberPress o Restrict Content Pro possono sovrascrivere questo redirect con le proprie impostazioni. - URL redirect dopo logout: dove mandare l'utente dopo il logout. Ha senso impostare
/o/wp-login.php.
Aggiungere la voce di menu
Vai su Aspetto → Menu. Nell'angolo in alto a destra clicca Opzioni schermo e verifica che la casella Login/Logout sia attivata. Nella colonna di sinistra apparirà un blocco «Login/Logout»; seleziona Login|Logout e clicca Aggiungi al menu.
La voce di menu apparirà nell'elenco. Il suo URL deve rimanere #lolmiloginout# perché questo è il trigger del plugin; non modificarlo. Puoi cambiare l'etichetta di navigazione: ad esempio «Login | Logout» o «Il mio account». Salva il menu.
Se lavori con l'editor a blocchi (Aspetto → Editor, blocco Navigazione): clicca «+» per aggiungere un link, digita «login» o «logout» nella ricerca e seleziona «Login|Logout» dai suggerimenti. Il link verrà aggiunto automaticamente con l'URL corretto. Puoi anche inserirlo manualmente: #lolmiloginout#.
Cosa fare se il menu non cambia
La causa più comune è la cache. Disabilita la cache per gli utenti autenticati nelle impostazioni del tuo plugin di caching: WP Rocket, Cloudflare APO, LiteSpeed. La seconda causa è un altro plugin che intercetta il redirect. Controlla le impostazioni del tuo plugin di membership o sicurezza: molti di essi hanno le proprie regole di redirect post-login che hanno la priorità.
Metodo 2: login e logout tramite codice in functions.php
Il plugin copre la maggior parte degli scenari tipici. Ma a volte serve una logica più granulare: redirect diversi per ruoli diversi, logout forzato senza conferma, nascondere la barra di amministrazione. È qui che entra in gioco functions.php.
Aggiungi tutto il codice seguente tramite il plugin Code Snippets; è più sicuro che modificare direttamente functions.php. Un errore di sintassi non manderà in crash il sito; disabiliterà semplicemente lo snippet.
Login con redirect per ruolo
Questo codice reindirizza gli amministratori alla dashboard di amministrazione e tutti gli altri alla pagina account dei membri. Aggiungilo a Code Snippets o al functions.php del tuo tema child.
1 /** 2 * Redirect after login: admin → wp-admin, others → /account 3 */ 4 function sd_redirect_by_role( $url, $request, $user ) { 5 if ( $user && is_object( $user ) && is_a( $user, 'WP_User' ) ) { 6 if ( $user->has_cap( 'administrator' ) ) { 7 $url = admin_url(); 8 } else { 9 $url = home_url( '/account' ); 10 } 11 } 12 return $url; 13 } 14 add_filter( 'login_redirect', 'sd_redirect_by_role', 10, 3 );
Come funziona: il filtro login_redirect si attiva al momento del login. La funzione controlla il ruolo tramite has_cap('administrator') e restituisce l'URL appropriato. La priorità 10 è standard e 3 limita il numero di argomenti accettati. Se lo slug della tua pagina account è diverso da /account, sostituiscilo nella riga home_url('/account').
Logout senza conferma
Di default WordPress mostra una pagina di conferma quando clicchi un link di logout: «Sei sicuro di voler uscire?». Sui dispositivi mobili è particolarmente fastidioso. Ecco il codice che rimuove la conferma:
1 /** 2 * Logout without confirmation, redirect to home 3 */ 4 add_action( 'check_admin_referer', 'sd_logout_without_confirm', 10, 2 ); 5 function sd_logout_without_confirm( $action, $result ) { 6 if ( $action === 'log-out' && ! isset( $_GET['_wpnonce'] ) ) { 7 $redirect_to = isset( $_REQUEST['redirect_to'] ) 8 ? $_REQUEST['redirect_to'] 9 : home_url( '/' ); 10 $location = str_replace( '&', '&', wp_logout_url( $redirect_to ) ); 11 header( "Location: $location" ); 12 die; 13 } 14 }
Prima di aggiungerlo, fai un backup completo del sito. La funzione intercetta il controllo del nonce durante il logout ed esegue immediatamente il redirect, bypassando la pagina di conferma. Dopo l'installazione testala: apri your-domain/wp-login.php?action=logout in modalità incognito; dovresti essere reindirizzato alla homepage senza una schermata intermedia.
Alcuni plugin di sicurezza (Wordfence, Solid Security) sovrascrivono il comportamento del logout. Se la conferma appare ancora, disabilita la loro opzione «conferma logout» o aggiungi l'URL /wp-login.php?action=logout alla whitelist.
Scenario: pagina di login personalizzata invece di wp-login.php
Se hai sostituito la pagina di login standard con una personalizzata (ad esempio tramite MemberPress o WooCommerce), devi reindirizzare l'accesso diretto a wp-login.php:
1 /** 2 * Replace wp-login.php with custom login page 3 */ 4 add_action( 'init', 'sd_custom_login_page' ); 5 function sd_custom_login_page() { 6 global $pagenow; 7 if ( ! is_user_logged_in() && 'wp-login.php' === $pagenow ) { 8 wp_redirect( home_url( '/login' ) ); 9 exit; 10 } 11 }
Sostituisci /login con lo slug della tua pagina di login. Questo è utile quando usi un plugin per dashboard membri e non vuoi esporre il modulo standard di WordPress.
Come nascondere la barra di amministrazione a tutti tranne che agli amministratori
La barra di amministrazione di WordPress in cima al sito è utile solo per chi gestisce il sito. Gli utenti normali non ne hanno bisogno e ingombra l'interfaccia, specialmente se stai costruendo una dashboard membri dal design pulito.
Disabilitare la barra di amministrazione via codice
Aggiungi questo a Code Snippets o al functions.php del tuo tema child:
1 /** 2 * Hide admin bar for everyone except administrators 3 */ 4 add_action( 'after_setup_theme', 'sd_remove_admin_bar_for_non_admins' ); 5 function sd_remove_admin_bar_for_non_admins() { 6 if ( ! current_user_can( 'administrator' ) && ! is_admin() ) { 7 show_admin_bar( false ); 8 } 9 }
La funzione current_user_can('administrator') controlla il ruolo e ! is_admin() assicura che la barra rimanga visibile nell'area di amministrazione stessa, dove chiunque abbia accesso ne ha bisogno.
Bloccare l'accesso a wp-admin
Nascondere la barra non basta. Devi anche bloccare l'accesso a /wp-admin/ per chi non ne ha bisogno:
1 /** 2 * Block access to wp-admin for non-administrators 3 */ 4 add_action( 'admin_init', 'sd_block_wp_admin_for_non_admins' ); 5 function sd_block_wp_admin_for_non_admins() { 6 if ( ! current_user_can( 'administrator' ) && ! ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) { 7 wp_redirect( home_url( '/restrict_user' ) ); 8 exit; 9 } 10 }
La condizione DOING_AJAX è critica: senza di essa bloccheresti le richieste AJAX dei plugin per dashboard membri che gli utenti devono eseguire dal proprio profilo. Sostituisci la pagina /restrict_user con una pagina placeholder qualsiasi, ad esempio la homepage o una pagina con un messaggio «Accesso negato».
⁉️🤔 Domande frequenti
Il plugin Login or Logout Menu Item non funziona con PHP 8.0, cosa devo fare?
C'è una recensione negativa su WordPress.org sull'incompatibilità con PHP 8.0 datata gennaio 2026. Tuttavia il plugin è stato testato fino a WP 7.0 e oltre 20.000 installazioni attive confermano un funzionamento stabile sulle versioni moderne di PHP. Se riscontri un errore: verifica la versione del plugin (dovrebbe essere 1.3.2), disabilita altri plugin di redirect, svuota la cache. Su un sito di test con PHP 8.2 non sono stati riscontrati problemi.
Posso farlo senza un plugin, usando solo codice?
Sì. Il Metodo 2 in questo articolo copre completamente login, logout e redirect tramite
functions.php. Il plugin è più comodo: impostazioni dal pannello di amministrazione senza modificare file, supporto per l'editor a blocchi, aggiornamenti automatici. Se il sito è semplice e ti serve solo un pulsante di login e logout, usa il plugin. Se la logica è complessa (redirect diversi per ruolo, pagine di login multiple), usa il codice.
Cosa devo fare se la voce di menu non appare nell'editor a blocchi?
Nel blocco Navigazione clicca «+» e digita «login» nella ricerca (non «lolmiloginout»). Se la voce non appare, verifica che il plugin sia attivo e che la tua versione di WordPress sia 6.0 o superiore. Per temi più vecchi senza editor a blocchi usa l'interfaccia classica in Aspetto → Menu.
Come imposto redirect per ruoli diversi tramite il plugin?
Login or Logout Menu Item non distingue tra ruoli; esegue un unico redirect per tutti gli utenti. Per redirect per ruolo usa il codice del Metodo 2: la funzione
sd_redirect_by_rolefunziona anche se la voce di menu è stata aggiunta tramite il plugin. Il filtrologin_redirectviene eseguito dopo il redirect del plugin e lo sovrascrive.
Perché la pagina di conferma del logout appare ancora?
Alcuni plugin di sicurezza (Wordfence, Solid Security) sovrascrivono il comportamento del logout al proprio livello. Disabilita la loro opzione di conferma logout o aggiungi l'URL di logout alla whitelist. Il codice del Metodo 2 si attiva prima della maggior parte dei plugin, ma non di tutti; in rari casi potresti dover configurare il plugin di sicurezza stesso.
In cosa si differenzia WP-Recall da Login or Logout Menu Item?
WP-Recall è un plugin completo per dashboard membri: profili, messaggi privati, gruppi, moduli di commercio. Login e logout sono integrati come parte dell'ecosistema. Login or Logout Menu Item risolve esattamente un compito: un pulsante dinamico di login/logout nel menu. Se ti serve una dashboard membri completa con molte funzionalità, guarda WP-Recall o MemberPress. Se ti serve solo un pulsante nel menu, Login or Logout Menu Item è più leggero e non porta bagaglio extra.
Cosa usare sul tuo sito: plugin o codice
La soluzione rapida per un sito tipico è il plugin Login or Logout Menu Item. Installalo, compila tre campi in Impostazioni, aggiungi la voce di menu. Tutto funziona in cinque minuti. Ventimila installazioni attive e la compatibilità con WP 7.0 confermano che lo strumento è maturo e mantenuto.
Se la tua logica di login non è banale (redirect diversi per ruoli diversi, integrazione con un plugin per membership, pagina di login personalizzata), usa il codice del Metodo 2. È più flessibile ma richiede cautela. Scrivi il codice tramite Code Snippets, non direttamente nel file del tema. Un refuso in functions.php e il sito va giù.
Una combinazione del plugin per il menu e del codice per i redirect è il compromesso che usiamo nella maggior parte dei progetti. Il plugin fornisce una gestione comoda della voce di menu e il supporto per l'editor a blocchi. Il codice personalizzato gestisce requisiti specifici di ruolo e redirect senza complicare le impostazioni del plugin.
Scegli in base al tuo compito, non alla checklist di qualcun altro. Per un sito semplice con un'area membri il plugin è sufficiente. Per un marketplace o una piattaforma educativa, il codice è essenziale. In ogni caso, tieni un backup prima di fare modifiche e testa su una copia di staging.



