disabilitare l'admin bar di wordpress

Se siete amministratori di un sito in WordPress avrete notato che dopo il login, visualizzando una qualsiasi pagina in front end, in alto compare una barra di amministrazione. Questa barra viene chiamata “admin bar” e, seppur molto comoda, è abbastanza antiestetica (vedi immagine seguente) e quando si sviluppa un sito web in cui si da la possibilità agli utenti di accedere con delle credenziali, va gestita in modo opportuno. La admin bar infatti, di default, non viene vista solo dagli amministratori, ma da qualsiasi utente che effettui il login nel nostro sito. In questo post spiegherò come disabilitare l’admin bar di WordPress una volta per tutte per tutti gli utenti non amministratori.

admin-bar-wordpress

Recentemente ho dovuto creare per un mio cliente un “membership website“, ovvero una sorta di community social in cui gli utenti, per poter partecipare, interagire con gli altri membri e visualizzare dei contenuti dedicati, devono essere iscritti al sito.

L’iscrizione è gratuita e in aggiunta ogni utente può pagare una fee mensile per accedere ad ulteriori contenuti e approfondimenti (vedi maggiori dettagli).

Per le funzionalità principali questo tipo di progetto può essere sviluppato e gestito in modo abbastanza semplice, ad esempio, con dei plugin come “BuddyPress” e “Paid Membership Pro“.

Questi due plugin, tuttavia, non hanno nessuna opzione che prevede la possibilità di disattivare l’admin bar simultaneamente per tutti gli utenti appartenenti ad uno stesso gruppo (ad esempio tutti i subscriber, tutti i non admin, solo subscriber ed editori, ecc.).

Esistono altri plugin che possono aiutare a raggiungere questo risultato. A volte però fare ricorso ad un plugin non è detto che sia la soluzione migliore. Come vedremo in uno dei prossimi articoli, installare un plugin può voler dire rallentare il sito o può causare problemi di compatibilità. In alcuni casi può addirittura rendere il nostro sito più vulnerabile.

Per questo motivo, per funzionalità molto semplici come questa, può risultare più conveniente aggiungere poche righe di codice all’interno del file functions.php presente all’interno della cartella del tema principale o della cartella del vostro tema child:

add_action('after_setup_theme', 'remove_admin_bar');

function remove_admin_bar() {
    if (!current_user_can('administrator') && !is_admin()) {
      show_admin_bar(false);
    }
}

Questo codice non fa altro che agganciare la funzione “remove_admin_bar” ad un hook di WordPress (clicca qui per una lista completa di tutti gli hook disponibili) che controlla se l’utente che sta navigando nel sito è un amministratore tamite la funzione current_user_can(‘administrator’) e se sta tentando di visualizzare una pagina appartenente alla sezione di amministrazione (backend) tramite il controllo “is_admin”. Nel caso in cui nessuna delle due condizioni sia verificate, disabilita l’admin bar.

In questo modo, l’admin bar sarà automaticamente disabilitata per tutti gli utenti che non sono amministratori del sito.

Un’alternativa apparentemente molto più semplice per disabilitare l’admin bar di WordPress è quella di deselezionare la voce “Visualizza la Barra strumenti quando si visualizza il sito”, presente all’interno della pagina impostazioni di ogni utente. Tuttavia questa è un’operazione che andrebbe fatta manualmente per ogni singolo utente e quindi poco gestibile.

rimuovere-admin-bar-singolo-utente

0 commenti

Lascia un Commento

Vuoi partecipare alla discussione?
Fornisci il tuo contributo!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *