2018. 12. 10.
frissítve: 2022. 05. 15.
Olvasási idő: 6 perc
Plugout

Saját felhasználói szerepkör létrehozása WordPressben

Az előző #plugout snippetben említettem, hogy érdemes lehet létrehozni saját szerepkört és "képességet" (capability), mondjuk az SVG feltöltéshez WordPress-ben. Erre mutatok most egy megoldást, mégpedig első lépésben a szerepkör létrehozásában.


Az eddigiekhez képest egy kicsit rendhagyó megoldás lesz a mai, ugyanis ennek a kódnak elég egyszer lefutnia (vagyis a mentés utáni első frissítést követően a változtatások életbe lépnek), így nem is muszáj az mu-plugins mappában hagyni a fájlt. A kódot viszont érdemes lehet továbbra is az mu-plugins mappában lévő fájlba bedobni, mondjuk egy add-user-role.php fájlba, az alábbi tartalommal:

Három paramétert használunk: az első a rendszeren belüli nevet adja meg (amivel majd hivatkozhatunk rá a kódban), a második a "szép név", amit az adminisztrációs felületen is látni fogunk, a harmadik pedig egy tömb, ami megadja, hogy melyik képességgel rendelkezik az ezzel a felhasználói szerepkörrel rendelkező felhasználó (vagyis a példában a read-del és az edit_posts-tal igen, a delete_posts-al nem).

Mivel a kódunk nem fut le minden oldalbetöltéskor, a kérdés az, hogy hogyan maradnak meg az adatok? A válasz erre az, hogy az adatbázisban, méghozzá a wp_options (vagy a megfelelő prefixű) táblának a wp_user_roles mezőjében (ami szintén a megfelelő prefix-szel értendő). Tehát ha törölni szeretnénk ezeket a szerepköröket, egy másik kódra is szükségünk lesz, ez pedig az alábbi:

A snippetet tartalmazó fájl is törölhető a lefutását követően - egyúttal azt is látjuk, hogy mire is volt jó az első kódrészletben a $role változó. Kész is vagyunk!