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ć…
Spis treści w artykule [rozwiń]
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.


- Wtyczka BackWPup w wersji 5.x to doskonały przykład, jak wylać dziecko z kąpielą i z relatywnie świetnego narzędzia zrobić właściwie bezwartościowego gniota - 1970-01-01
- Testowy przelew w Bitcoinach z najniższą prowizją, czyli krótka historia o tym, jak zamroziłem BTC na (ponad) rok - 1970-01-01
- Nowy system kopii zapasowych w Home Assistant 2025.1 to zapewne krok w dobrym kierunku, ale zdecydowanie przedwczesny - 1970-01-01
w mojej stroni nie mam możliwości wyświetlenia paska dla zwykłych użytkoników (nie adminów), ma Pan pomysł jak to rozwiązać? bardzo zależy mi na tym pasku, strona [—]
Zapewne nie ma dla subskrybentów, bo tak domyślnie jest w WordPressie, że użytkownik musi mieć wyższą rolę niż najniższa, czyli właśnie subskrybent. Więc albo nadawać im inną rolę, albo zmodyfikować rolę subskrybenta. Poszukaj pod hasłami „show_admin_bar” i „show_admin_bar_front”.