Jak stworzyć niestandardową rolę użytkownika w WordPressie

Opublikowany: 2021-02-06

Przy tworzeniu strony internetowej z CMS zawsze mile widziana jest elastyczność. Na szczęście WordPress ma więcej niż swój udział dzięki motywom i wtyczkom, które pozwalają nam tworzyć wysoce niestandardowe wrażenia.

Ale jego elastyczność wykracza poza tylko te dodatkowe rzeczy, które możemy zainstalować. W rzeczywistości jest zapiekany w samym rdzeniu oprogramowania.

Świetnym przykładem jest możliwość tworzenia niestandardowych ról użytkownika. Dzisiaj przyjrzymy się, czym one są, dlaczego chcesz ich używać, oraz kilkoma różnymi technikami ich tworzenia.

Dokładna kontrola ziarna nad uprawnieniami użytkownika

W każdej instalacji WordPressa masz już dostęp do wyboru domyślnych ról użytkownika. Pozwalają nam określić, co użytkownicy mogą, a czego nie mogą robić w zapleczu (aka Dashboard) witryny.

To ma sens. Nie każdy, kto zarządza treścią, musi mieć uprawnienia administracyjne. Dlatego każdemu użytkownikowi możemy przypisać rolę w zależności od potrzeb. Jest to świetny środek bezpieczeństwa i może lepiej zabezpieczyć się przed wpadkami, a nawet instalacją wtyczek przez kogoś.

Działa to również z przodu. Jeśli chcesz, aby tylko zalogowani użytkownicy widzieli określoną zawartość, możesz wbudować tę funkcję w swój motyw lub dodać ją za pomocą wtyczki członkostwa.

Ale chociaż domyślne role użytkownika (administrator, edytujący, autor, współautor i subskrybent) są przydatne, czasami potrzebujesz dodatkowej kontroli. Dlatego WordPress zapewnia możliwość tworzenia własnych niestandardowych ról.

Kiedy używać niestandardowej roli

Niestandardowa rola użytkownika może się przydać w kilku scenariuszach. Oto kilka z najczęstszych, z którymi możesz się spotkać:

Masz użytkowników, którzy zarządzają różnymi typami treści

Domyślnie WordPress zawiera dwa kluczowe typy treści dostępnych publicznie: posty i strony. Ale łatwo jest dodać więcej, korzystając z niestandardowych typów postów. Możesz na przykład utworzyć typy postów dla takich rzeczy, jak komunikaty prasowe lub członkowie personelu. Ponadto różne wtyczki mogą również instalować własne typy postów.

Duże organizacje mogą mieć kilka różnych rodzajów treści, z myślą o konkretnych osobach do zarządzania każdym z nich. W takim przypadku domyślna rola użytkownika nie byłaby idealna, ponieważ mogłaby zapewnić dostęp do całej partii (lub odwrotnie, w zależności od konfiguracji). Jednak rola niestandardowa pozwoliłaby różnym użytkownikom zobaczyć tylko typy postów, które im przypiszesz.

Użytkownik musi zrobić tylko jedną rzecz

Istnieją sytuacje, w których użytkownik może potrzebować unikalnego poziomu dostępu do funkcji w Twojej witrynie. Załóżmy na przykład, że prowadzisz kurs online. Możesz mieć członka zespołu, który potrzebuje dostępu do całego kursu z przodu iz tyłu, aby upewnić się, że działa on poprawnie i że treść jest dokładna.

Jeśli wszystko, co ten członek zespołu musi zrobić, to skupić się na samym kursie, konto administratora może być przesadą. Dzięki niestandardowej roli użytkownika mogą wykonywać swoją pracę bez przedzierania się przez niepotrzebne opcje.

Musisz „podnieść poziom” istniejącej roli

Czasami istniejąca rola użytkownika WordPress jest prawie idealna. Ale może jest jeszcze jedna dodatkowa rzecz, do której użytkownik musi mieć dostęp.

Wciel się w rolę autora. Domyślnie mogą publikować posty – ale nie strony. Normalnie musiałbyś podbić użytkownika do edytora. W niektórych przypadkach może to być w porządku. Jednak mogą istnieć inne możliwości, do których nie chcesz, aby ten konkretny użytkownik miał dostęp. W tym przypadku najlepszą opcją może być utworzenie niestandardowej roli.

Jak stworzyć niestandardową rolę użytkownika

Istnieją dwie różne metody tworzenia niestandardowej roli użytkownika WordPress. Pierwszym z nich jest dodanie kodu do niestandardowej wtyczki lub pliku functions.php motywu. Drugim jest zainstalowanie jednej z wielu dostępnych wtyczek, które umożliwiają tworzenie i edycję ról.

Metoda, którą zastosujesz, naprawdę zależy od osobistych preferencji. Jeśli chcesz mieć możliwość wizualnego wybierania i wybierania funkcji użytkownika, wtyczka ma największy sens. Ale jeśli nie masz nic przeciwko kodowi i/lub nie chcesz, aby inni administratorzy bawili się ustawieniami, dodanie fragmentu może być dla Ciebie.

Tak czy inaczej, zaczniemy od kilku przykładów kodu i wyboru wtyczek.

Po pierwsze, zaleca się zapoznanie się z różnymi możliwościami użytkownika, które oferuje WordPress. Pamiętaj również, że niestandardowe typy postów również mogą mieć swoje niestandardowe możliwości. Może się to przydać w pierwszym przykładowym scenariuszu, o którym wspomnieliśmy powyżej.

Metoda #1: Dodaj fragment kodu

W tym przykładzie utworzymy rolę użytkownika o nazwie „Członek personelu”. Obejmuje to wszystkie możliwości roli Autor, ale z dodatkową możliwością edytowania i publikowania stron.

Każda funkcja, którą przypisujemy do roli, jest wymieniona w poniższym fragmencie i ma wartość „ true ”. Wyjątkiem jest tutaj to, że nie chcemy, aby użytkownicy z tą rolą usuwali opublikowane strony, więc wyraźnie ustawiamy to na „ false ” – na wszelki wypadek.

Ponownie, ten kod przejdzie do pliku functions.php twojego motywu lub opcjonalnie do niestandardowej wtyczki.

 /* Create Staff Member User Role */ add_role( 'staff_member', // System name of the role. __( 'Staff Member' ), // Display name of the role. array( 'read' => true, 'delete_posts' => true, 'delete_published_posts' => true, 'edit_posts' => true, 'publish_posts' => true, 'upload_files' => true, 'edit_pages' => true, 'edit_published_pages' => true, 'publish_pages' => true, 'delete_published_pages' => false, // This user will NOT be able to delete published pages. ) );

Po zapisaniu tego kodu i odświeżeniu naszej strony w przeglądarce możemy dodać nowego użytkownika z tą rolą.

Ekran Dodaj nowego użytkownika WordPress.

Gdy nasz użytkownik z rolą członka personelu loguje się, widzi zarówno strony, jak i posty.

Zalogowany użytkownik widzi Posty i Strony.

Inną alternatywą byłoby po prostu dodanie kilku możliwości do istniejącej roli autora. Możemy to zrobić za pomocą funkcji add_cap() :

 /* Upgrade the Author Role */ function author_level_up() { // Retrieve the Author role. $role = get_role( 'author' ); // Let's add a set of new capabilities we want Authors to have. $role->add_cap( 'edit_pages' ); $role->add_cap( 'edit_published_pages' ); $role->add_cap( 'publish_pages' ); } add_action( 'admin_init', 'author_level_up');

Oba te fragmenty kodu zasadniczo robią to samo. Jednak dodanie nowej roli członka personelu może być najlepsze w przypadkach, gdy masz już użytkowników z rolą autora i nie chcesz, aby mieli dodatkowe możliwości.

Metoda 2: Użyj wtyczki

Powyższa funkcjonalność może być łatwo zreplikowana za pomocą wtyczki. Kilka z nich zostało stworzonych do tego typu zarządzania rolami i możliwościami użytkowników. Oferują one tę zaletę, że wykorzystują graficzny interfejs użytkownika i dodają warstwę wygody do całego procesu.

Rzućmy okiem na kilka bardziej popularnych opcji:

Edytor roli użytkownika

Dzięki Edytorowi ról użytkownika dodawanie lub usuwanie możliwości roli jest tak proste, jak zaznaczanie lub odznaczanie pola w ustawieniach. Masz również możliwość tworzenia własnych niestandardowych ról użytkownika i ustawiania dowolnych potrzebnych funkcji. Wtyczka obsługuje również wielostanowiskowe instalacje WordPressa.

Edytor ról użytkownika WPFront

Edytor ról użytkownika WPFront oferuje podobne możliwości, umożliwiając dodawanie lub edytowanie ról użytkowników. Ale pozwala również administratorom na migrację użytkowników z jednej roli do drugiej i przypisanie wielu ról poszczególnym użytkownikom.

Zaawansowany menedżer dostępu

Jeśli szukasz czegoś o szerszym zakresie, Advanced Access Manager może być dla Ciebie dobrym wyborem. Oferuje zarządzanie rolami i możliwościami, a także możliwość kontrolowania dostępu do funkcji frontendu i zaplecza, takich jak menu i widżety.

Poznaj swoje role

Możliwość tworzenia niestandardowych ról użytkowników to jeszcze jeden powód, by pokochać WordPressa. To coś bardzo niszowego, ale może być niezwykle pomocne, gdy potrzebujesz czegoś, co wykracza poza domyślne role.

Zatem następnym razem, gdy znajdziesz się w sytuacji, w której potrzebna jest kontrola nad możliwościami użytkownika, wiedz, że masz do dyspozycji to potężne narzędzie.