Tworzysz stronę internetową i potrzebujesz pomocy?

Zapytał się mnie dziś kolega, jak najprościej – czyli bez instalowania dodatkowych wtyczek – wyłączyć pasek administracyjny w WordPressie „od strony użytkownika” (frontend). Nie wiem po co mu to, nie wnikam, ale skoro zapytał, to pewnie jest w tym jakiś sens… ;-)

Admin bar w WordPressie

Sam raczej tego nie stosuje, przynajmniej na stałe – czasem, gdy np. testuje różne rozwiązania typu BugMeBar zdarza mi się „na chwilę” wyłączyć pasek administracyjny w WordPressie (to ta pozioma belka na samej górze, co towarzyszy zalogowanym użytkownikom), bo faktycznie zdarza się, że coś tam się… gryzie. Zwłaszcza, że ogólnie uważam ten pasek za bardzo przydatny w codziennej pracy.

Ale jak ktoś potrzebuje go wyłączyć, to wystarczy dodać jedną linijkę do pliku functions.php:

add_filter( 'show_admin_bar', '__return_false' );

Wyłączy ona globalnie, czyli dla wszystkich użytkowników górny pasek administracyjny. Ale co ważne, w WP-Admin będzie on dalej widoczny.

Możemy też ten kod trochę rozbudować, tak by wyłączyć go tylko tym użytkownikom, którzy np. nie mogą zmieniać ustawień w WordPressie:

if ( !current_user_can( 'manage_options' ) ) {
    show_admin_bar( false );
}

Ew. trochę bardziej „pro”, czyli z wykorzystanie „add_action” (jakby się trafił jakiś purysta ;-)):

function webinsider_disable_admin_bar_frontend() {
    if ( ! current_user_can( 'manage_options' ) ) {
        show_admin_bar( false );
    }
}
add_action( 'init', 'webinsider_disable_admin_bar_frontend' );

Idąc dalej, możemy wyłączyć pasek administracyjny dla wszystkich użytkowników poza „patryk”:

function webinsider_disable_admin_bar_frontend() {
    $current_user = wp_get_current_user();
    if ( $current_user->user_login !== 'patryk' ) {
        show_admin_bar( false );
    }
}
add_action( 'init', 'webinsider_disable_admin_bar_frontend' );

Czy też dla wszystkich, poza użytkownikiem o konkretnym ID (w końcu nazwę można zmienićtak samo zresztą ID):

function webinsider_disable_admin_bar_frontend() {
    $current_user = wp_get_current_user();
    if ( $current_user->ID != '123' ) {
        show_admin_bar( false );
    }
}
add_action( 'init', 'webinsider_disable_admin_bar_frontend' );

I to chyba tyle. Oczywiście powyższe reguły można właściwie dowolnie rozbudowywać, zależnie od potrzeb (w końcu elastyczność, to jedna z wielu zalet WordPressa).

(!) Zgłoś błąd na stronie
Pomogłem? To może postawisz mi wirtualną kawę?
LUTy dla D-Cinelike (DJI Mini 3 Pro, DJI Avata, OSMO Pocket) od MiniFly
Wdrożenie Omnibusa w sklepie na WooCommerce
Jak (legalnie) latać dronem w Kategorii Otwartej
Tworzysz stronę internetową i potrzebujesz pomocy?
Patryk
Kurs "WordPress: Pierwsze kroki" (bezpłatna lekcja)