WordPress: 3 modi per eliminare l’admin bar da front-end

WordPress: 3 modi per eliminare l’admin bar da front-end

15390
6
CONDIVIDI

Dall’introduzione della versione 3.1 spesso nei nostri progetti sorge la necessità di eliminare l’admin bar che compare dopo aver effettuato login, soprattutto se si realizzano web application con login ed interazione degli utenti via front-end. Ecco tre modi semplici fra loro:

Da pannello di controllo

E’ possibile decidere quale utente può visualizzare la barra e quale no modificando un user accedendo dal menù “Utenti”.
Nella modifica del profilo vi è la possibilità di nascondere la barra via front-end.

Via plugin

Per i più inesperti ci sono innumerevoli plugin che fanno tutto ciò in maniera visuale, basta installarli e gestire le loro impostazioni, elenco i più utilizzati:

Se sai smanettare un po’ di più nel tema evita di installare plugin come questi poiché vanno ad appesantire ulteriormente il codice e a rallentare l’applicazione (ricorda che php non è un linguaggio compilato), le soluzioni via codice che seguono sono sicuramente le più funzionali e performanti dal punto di vista delle prestazioni.

Via codice

Esistono 2 modi simili per eliminare l’admin bar da front-end via codice, tutti richiedono di operare all’interno del file functions.php del tema corrente:

function hide_admin_bar() {
    return false;
}

add_filter( 'show_admin_bar', 'hide_admin_bar' );
show_admin_bar( false );

Potrebbe anche esserci utile eliminare l’admin bar SOLO per alcuni ruoli specifici, ecco un esempio:

function hide_admin_bar() {
    return false;
}

if (!is_admin()) add_filter( 'show_admin_bar', 'hide_admin_bar' );

In questo esempio nascondo l’admin bar a tutti gli utenti che hanno un ruolo diverso da amministratore.

Lo stesso dicasi per altri ruoli, possiamo ad esempio sfruttare le funzioni che WordPress offre nel proprio repository come get_userdata(); che fornisce i dati di profiliazione dell’utente corrente collegato alla nostra applicazione.

function hide_admin_bar() {
    return false;
}

$user_info = get_userdata($userid); //$userid = id user corrente
if ($user_info->user_level == 1) add_filter( 'show_admin_bar', 'hide_admin_bar' );

Se il livello utente è pari a 1 (1 livello minimo, 10 livello massimo) nascondo la barra.