045-369 05 93 info@oburon.nl
Selecteer een pagina

Een van de belangrijkste functies in WordPress die vaak over het hoofd wordt gezien, is dat er een aantal verschillende gebruikersrollen beschikbaar zijn. Deze gebruikersrollen kunnen ervoor zorgen dat gebruikers alleen toegang hebben tot de gebieden die ze nodig hebben en waar ze mogen komen. Het verkleind ook de kans dat er ongelukken gebeuren die de site stuk maken waardoor hij niet meer (goed) functioneert). In dit artikel een uitleg over gebruikersrollen en hoe je je eigen aangepaste rollen kunt maken.

Gebruikersrollen zijn sinds versie 2.0 een belangrijk onderdeel van de WordPress-ervaring. De meeste mensen weten niet eens dat ze bestaan ​​en wijzen beheerdersrechten toe aan iedereen die toegang heeft tot het dashboard van hun site. Uiteraard is dit om diverse redenen geen goede zaak. Standaard wordt WordPress geleverd met zes gebruikersrollen:

  • Beheerder (Administrator): iemand die toegang heeft tot alle administratieve functies en functies binnen een site.
  • Editor (Redacteur): iemand die berichten van alle gebruikers kan publiceren en beheren, inclusief die van zichzelf.
  • Auteur (Author): iemand die zijn eigen berichten kan publiceren en beheren.
  • Schrijver (Contributor): iemand die zijn eigen berichten kan schrijven en beheren, maar deze niet kan publiceren.
  • Abonnee (Subscriber): iemand die alleen zijn profiel kan beheren.

Waar gebruik je aangepaste gebruikersrollen voor?

Meestal zijn de standaard gebruikersrollen alles wat je nodig hebt. Er zijn echter gevallen waarin je een gebruikersrol nodig hebt die niet past in de parameters van de standaardrollen. In dit artikel laat ik je zien hoe je je eigen aangepaste gebruikersrollen kunt maken zonder een plug-in te gebruiken.

Laten we een praktijkvoorbeeld nemen waarbij aangepaste gebruikersrollen handig zouden zijn. Ik gebruik meestal aangepaste gebruikersrollen om ervoor te zorgen dat mijn klanten alleen toegang hebben tot wat ze nodig hebben.Er zullen veel mensen zijn die het hier niet (helemaal) mee eens zijn. De site is toch van de klant en deze zou te allen tijde overal toegang tot moeten hebben? Dat is prima bij websites waarbij er geen onderhoudscontract is afgesloten. De klant krijgt een gebruiker met de rol ‘beheerder’ en kan alles zelf aanpassen en bijhouden. De website wordt kant-en-klaar afgeleverd en daarna gaan we door naar het volgende project.

In de meeste gevallen is het echter zo dat een website inclusief een onderhoudscontract wordt geleverd (voor het maken van backups en het uitvoeren van de benodigde updates). In dat geval is het werken met een aangepaste gebruikersrol, altijd aan te raden. Op deze manier krijgt de klant alleen toegang tot wat hij/zij nodig heeft (bijv. blogitems toevoegen of evenement toevoegen en aanpassen) en verzuipt deze ook niet in álle functies die WordPress te bieden heeft. In onderling overleg kan er dan altijd nog gekeken worden naar wat de klant zelf wil en kan doen en kan de gebruikersrol daarop aangepast worden. Op deze manier wordt de kans beperkt dat de site per ongeluk uit de lucht gaat of niet meer naar behoren functioneert. De toegang tot het toevoegen of verwijderen van plugins wordt bijvoorbeeld beperkt of de mogelijkheid tot het doen van updates (dit zit per slot van rekening in het onderhoudscontract).

Laten we beginnen met een snelle bespreking van de basis.

Standaard WordPress Functies

Om rollen en bijbehorende mogelijkheden effectief te beheren, zijn er vijf zeer eenvoudige functies:

  • add_role(): Hiermee kunt u een aangepaste rol toevoegen.
  • remove_role(): Hiermee kunt u een aangepaste rol verwijderen.
  • add_cap(): Hiermee kunt u een aangepaste mogelijkheid aan een rol toevoegen.
  • remove_cap(): Hiermee kunt u een aangepaste mogelijkheid uit een rol verwijderen.
  • get_role(): Krijgt informatie over een rol en de mogelijkheden die aan de rol zijn gekoppeld.

We gaan alleen de functie add_role() gebruiken voor dit artikel, omdat we een aangepaste gebruikersrol voor onze fictieve klant gaan maken.

De gebruikersrol definiëren

Voordat we in de code duiken, moeten we een plan hebben, want duiken zonder een plan is nooit een goed idee.

We moeten de gebruikersrol een naam geven. We houden het eenvoudig en noemen de gebruikersrol ‘Klant’.

Wat willen we de gebruikersrol ‘Klant’ eigenlijk laten doen? Er zijn meer dan 50 verschillende functies beschikbaar in een standaardinstallatie van WordPress (het aantal neemt toe zodra je plug-ins toevoegt, maar we zullen dat in een ander artikel bespreken). In dit voorbeeld willen we dat de klant het volgende kan doen:

  • Berichten maken (Create posts)
  • Berichten bewerken (Edit posts)
  • Andere berichten bewerken (Edit Other Posts)
  • Categorieën beheren (Manage categories)
  • Pagina’s bewerken (Edit pages)

Even belangrijk is wat we niet willen dat ze kunnen doen:

  • Het bewerken van thema’s
  • Plug-ins toevoegen of verwijderen
  • De WordPress kern updaten

De code schrijven

We gaan deze code aan het functions.php bestand toevoegen van het actieve thema. (TIP! Werk altijd met een ‘child’ thema, zodat de door jou gemaakte wijzigingen niet verloren gaan bij de eerstvolgende update van het hoofdthema). Dit bestand staat in de volgende map: jouwdomein.nl/wp-content/themes/(jouw-theme-child)/functions.php. Laten we beginnen door dit aan het bestand toe te voegen:

[code]// Voeg een aangepaste gebruikersrol toe

$ result = add_role (‘klant’, __ (
‘Klant’),
array ());[/code]

Door bovenstaand stukje code toe te voegen, hebt je een nieuwe gebruikersrol gecreëerd (u kunt dit controleren in de vervolgkeuzelijst in het menu van het dashboard Gebruikers > Nieuwe toevoegen. De nieuwe rol zou daar toegevoegd moeten zijn). Het probleem is dat aan deze gebruikersrol nog geen functionaliteit is toegewezen. De volgende stap is om de gewenste functionaliteiten toe te voegen (die we eerder hadden aangegeven in onze). Voeg onderstaande array code toe aan wat u al in uw functions.php bestand heeft ingevoerd.

[code]// Voeg een aangepaste gebruikersrol toe

$ result = add_role (‘klant’, __ (

‘Klant’),

array (

‘read’ => true, // true staat deze mogelijkheid toe
‘edit_posts’ => true, // Staat gebruiker toe zijn eigen berichten te bewerken
‘edit_pages’ => true, // Staat gebruiker toe pagina’s te bewerken
‘edit_others_posts’ => true, // Sta toe dat de gebruiker anderen berichten kan bewerken die niet alleen van henzelf zijn
‘create_posts’ => true, // Staat gebruiker toe om nieuwe berichten te maken
‘manage_categories’ => true, // Hiermee kan de gebruiker postcategorieën beheren
‘publish_posts’ => true, // Staat de gebruiker toe om items te publiceren, anders blijven items in ‘concept’ staan

)

);[/code]

Dit geeft ons de functionaliteiten die we voor de klant willen, maar we moeten nog beperkingen toevoegen zodat men de site niet kan beschadigen. Laten we deze nu toevoegen.
[code]
// Voeg een aangepaste gebruikersrol toe

$result = add_role( ‘klant’, __(

‘Klant’ ),

array(

‘read’ => true, // true staat deze mogelijkheid toe
‘edit_posts’ => true, // Staat gebruiker toe zijn eigen berichten te bewerken
‘edit_pages’ => true, // Staat gebruiker toe pagina’s te bewerken
‘edit_others_posts’ => true, // Sta toe dat de gebruiker anderen berichten kan bewerken die niet alleen van henzelf zijn
‘create_posts’ => true, // Staat gebruiker toe om nieuwe berichten te maken
‘manage_categories’ => true, // Hiermee kan de gebruiker postcategorieën beheren
‘publish_posts’ => true, // Staat de gebruiker toe om items te publiceren, anders blijven items in ‘concept’ staan
‘edit_themes’ => false, // false staat deze mogelijkheid niet toe. Gebruiker kan het thema niet aanpassen.
‘install_plugins’ => false, // Gebruiker kan geen plugins toevoegen
‘update_plugin’ => false, // Gebruiker kan geen plugins updaten
‘update_core’ => false // Gebruiker kan WordPress niet updaten

)

);
[/code]

Hoe controleer ik of de gebruikersrol goed is ingesteld?

Controleren of uw nieuwe gebruikersrol naar behoren werkt, vereist dat u een nieuwe gebruiker met de juiste rol instelt, uitlogt en weer als nieuwe gebruiker aanmeldt.

Afhankelijk van welke mogelijkheden je hebt toegestaan en wat je hebt geweigerd, is het eerste wat je zou moeten opvallen een verandering in wat beschikbaar is in het dashboard.

Zoals je kunt zien, zijn de opties die beschikbaar zijn voor deze gebruiker sterk verminderd als gevolg van wat is toegestaan en wat expliciet is geweigerd. Je hebt nu een beetje rust als ontwikkelaar/sitebeheerder. Hopelijk hoor je nu nooit zeggen: “Ik weet niet wat er is gebeurd, maar ineens is mijn site er niet meer.”