Kurs "WordPress: Pierwsze kroki" (bezpłatna lekcja)

Dziś kolejny wpis z cyklu “da się, choć agencja twierdzi inaczej” – tym razem pokaże Wam prosty sposób na ukrycie górnego paska narzędziowego w WordPressie, który towarzyszy każdemu zalogowanemu użytkownikowi, również podczas normalnego korzystania ze strony (frontend), nawet gdy użytkownik z racji swojej roli (uprawnień) niewiele za jego pomocą może zrobić…

Wyłączamy pasek narzędziowy w WordPressie

Górny pasek narzędziowy w WordPressie pojawił się chyba z wersją 3.7 (a może 3.6?), więc jest z nami już na tyle długo, że chyba większość osób się do niego albo przyzwyczaiła, albo w ogóle nie wie, że kiedyś go nie było.

Wprawdzie na początku raczej dominowały negatywne opinie na jego temat, to w przeciwieństwie do usunięcia przycisku justowania i podkreślenia z edytora tekstowego w WordPressie 4.7 uważam, że jest on przydatny w codziennej pracy, zwłaszcza po tym, jak deweloperzy kolejnych wtyczek nauczyli się go wykorzystywać (choć czasem robi się na nim ciasno, ale to temat na ew. inny wpis).

Natomiast są takie sytuacje, gdy jest on… hm… powiedzmy, że przynajmniej zbyteczny – załóżmy, że na naszej stronie mamy blog, i każdy chętny może się zarejestrować, tak by komentarze pisać jako zalogowany użytkownik. W tej sytuacji najprawdopodobniej zostanie mu przypisana rola subskrybenta (subscriber), a więc i pasek narzędziowy WordPressa nie bardzo mu się przyda (chyba że dla opcji wylogowania, ale o tym, jak wstawić w dowolnym miejscu linki do zalogowania i wylogowania pisałem kilka dni temu), a będzie tylko przeszkadzał podczas normalnego korzystanie ze strony (frontend).

Na szczęście z pomocą kilku linijek własnego kodu (functions.php lub własna wtyczka) możemy go wyłączyć:

function webinsider_wp_remove_admin_bar() {
    if ( !is_admin() && current_user_can( 'subscriber' ) ) {
        show_admin_bar( false );
    }
}
add_action( 'after_setup_theme', 'webinsider_wp_remove_admin_bar' );

Powyższy kod wyłączy pasek narzędziowy dla użytkowników z grupy “subscriber”, ale tylko, gdy będą przeglądać stronę – pasek będzie widoczny w panelu zarządzania WordPressem.

Możemy też wyłączyć pasek dla wszystkich poza użytkownikami z grupy “administrator”:

function webinsider_wp_remove_admin_bar() {
    if ( !is_admin() && !current_user_can( 'administrator' ) ) {
        show_admin_bar( false );
    }
}
add_action( 'after_setup_theme', 'webinsider_wp_remove_admin_bar' );

Lub zostawić go tylko dla użytkowników, którzy mają uprawnienia do zarządzania ustawieniami strony:

function webinsider_wp_remove_admin_bar() {
    if ( !is_admin() && current_user_can( 'manage_options' ) ) {
        show_admin_bar( false );
    }
}
add_action( 'after_setup_theme', 'webinsider_wp_remove_admin_bar' );

Jeśli zajedzie taka potrzeba, można też wyłączyć go za pomocą jednej linijki u wszystkich:

add_filter( 'show_admin_bar', '__return_false' );

Ale to już raczej skrajna sytuacja, bo jednak się on przydaje w codziennej pracy…

Current user can, czyli role i uprawnienia

Tutaj warto chyba napisać coś więcej o funkcji “current_user_can”, którą wykorzystujemy w powyższych przykładach, a która sądząc po nazwie, raczej powinna być używana do sprawdzania uprawnień, jakie posiada dany użytkownik (np. “manage_options”) niż to, do jakiej grupy należy.

Natomiast w pomocy dla deweloperów WordPressa przeczytamy, że (aktualnie) funkcja ta ma zastosowanie zarówno do sprawdzania uprawnień, jak i ról użytkowników:

Description: Whether current user has capability or role.

Od razu też zachęcam do zapoznania się z dokumentacją WordPressa dotyczącą ról i uprawnień, dzięki czemu zapewne łatwiej będzie Wam dobrać odpowiedni warunek, nie tylko dla sytuacji opisanej w tym wpisie…

(!) Zgłoś błąd na stronie | Lub postaw nam 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
Kurs "WordPress: Pierwsze kroki" (bezpłatna lekcja)
Patryk
Kurs "WordPress: Pierwsze kroki" (bezpłatna lekcja)