Envato Elements - pobieraj co chcesz, ile chcesz

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' );

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
Potrzebujesz profesjonalnej pomocy? Skontaktuj się z nami!

Spodobał Ci się artykuł? Zapisz się do naszego Newslettera - ZERO SPAMu, same konkrety, oraz dostęp do dodatkowych materiałów przeznaczonych dla subskrybentów!

Na podany adres e-mail otrzymasz od nas wiadomość e-mail, w której znajdziesz link do potwierdzenia subskrypcji naszego Newslettera. Dzięki temu mamy pewność, że nikt nie dodał Twojego adresu przez przypadek. Jeśli wiadomość nie przyjdzie w ciągu najbliższej godziny (zazwyczaj jest to maksymalnie kilka minut) sprawdź folder SPAM.

Patryk

CEO Webinsider.pl, a do tego CTO, CIO, CFO, CMO, CSO, COO i CRO ;-)
Pasjonat nowych technologii - od sprzętu po oprogramowanie, od serwerów po smartfony i rozwiązania IoT. Potencjalnie kiepski bloger, bo nie robi zdjęć "talerza" zanim zacznie jeść.

Dumny przyjaciel swoich psów :-)
Na WebInsider.pl korzystamy z motywu Extra od Elegant Themes. Zobacz dlaczego...