Chcę stworzyć niestandardową możliwość dostępu do interfejsu mojej wtyczki.
- Czy wtyczka powinna poradzić sobie z dodaniem tej możliwości do wszystkich kont administratora podczas aktywacji?
- Jeśli tak: czy WordPress zarządza dodaniem możliwości wszystkim administratorom pod blogów i superadministratorów w instalacjach na wielu stronach, czy też ta funkcja musi być obsługiwana przez wtyczkę?
Odpowiedzi:
Usuń to, co dodajesz
Najpierw upewnij się, że wszystko, co dodasz podczas aktywacji, zostanie również usunięte podczas odinstalowywania . Mam krótki samouczek zawierający przykładowy kod dla ciebie .
Przetestuj za pomocą małej wtyczki:
Naprawdę niewiele wiem o MU, ale o ile mogę stwierdzić, obiekt ról jest globalny we wszystkich blogach. Po prostu wypróbuj tę małą wtyczkę i zobacz, co możesz uzyskać:
Dodawanie możliwości
Uwaga: Możesz dodać możliwość do roli bez udzielania dostępu do niej - wystarczy ustawić drugi argument
$grant = false;
. Pozwala to dodawać pojedynczych użytkowników do białej listy po prostu dodając limit, w tym ostatni argument jako prawdziwy.źródło
W przypadku wtyczki, nad którą obecnie pracuję, chciałem udzielić / ograniczyć dostęp do ustawień wtyczki (tj. Odpowiednich stron menu administratora) dla poszczególnych ról .
Dlatego musiałem dodać nową wtyczkę
capability
douser roles
.Niestety, odpowiedź kaisera wydaje się już nie działać, więc spędziłem trochę czasu próbując wymyślić, jak zezwolić na wyżej wspomnianą funkcjonalność.
Harmonogram
Zanim podzielę się z tobą moim kodem, oto o co chodzi, w postaci zwykłego tekstu:
THE_NEW_CAP
do ról mających pewne wbudowane możliwościBUILT_IN_CAP
(w moim przypadku:edit_pages
:).Kod
A oto powyższa lista przekonwertowana na kod:
»Konfiguracja
" Użyj tego
»Sprzątanie
Uwaga: Nie używaj wielkich liter. To tylko dla czytelności.
źródło
get_editable_roles()
do pobierania ról, które chcesz edytować. Państwo będzie złamać wtyczek inaczej.To działa dla mnie:
źródło