Menu

WordPress custom post type capabilities beheren

Remco 25 augustus 2014

Veel WordPress ontwikkelaars zullen wel eens een custom post type hebben gedefinieerd met de register_post_type() functie. Met behulp van deze functie kun je zelf berichttypen definieren vergelijkbaar met de standaard WordPress ‘Bericht’ en ‘Pagina’ berichttypen. Zo kan bijvoorbeeld op de website van een schrijver het berichttype ‘Boek’ geregisteerd worden.

Ook veel WordPress plugins en thema’s maken dankbaar gebruik van de custom post type functionaliteit. Zo wordt binnen de WooCommerce webwinkel plugin voor de producten, bestellingen en coupons ook gebruik gemaakt van custom post types. Maar ook binnen de Pronamic iDEAL plugin wordt elke iDEAL-configuratie en betaling opgeslagen in een custom post type.

Een minder bekende functionaliteit van de custom post types zijn custom capabilities. Binnen WordPress wordt met behulp van gebruikersrollen en capabilities bepaald wie wat wel/niet kan doen. Zo kan een gebruiker met de rol ‘Beheerder’ alles instellingen beheren, maar kan een gebruiker met de rol ‘Auteur’ dat niet. Op vergelijkbare manier kan ook aangegeven worden of een gebruikersrol berichten kan beheren.

Standard kunnen custom post types beheerd worden door alle gebruikersrollen die ook de standaard WordPress berichten kunnen beheren. Dit is echter niet altijd gewenst en daarom kan binnen register_post_type() functie een capability type opgegeven worden.

Hierdoor kan het beheer van het boek berichttype verder afgeschermd worden aan de hand van de volgende capabilities:

Beschrijving Capability
Bericht bewerken edit_book
Bericht lezen read_book
Bericht verwijderen delete_book
Berichten bewerken edit_books
Andermans berichten bewerken edit_others_books
Berichten publiceren publish_books
Privé berichten lezen read_private_books
Berichten verwijderen delete_books
Privé berichten verwijderen delete_private_books
Gepubliceerde berichten verwijderen delete_published_books
Andermans berichten verwijderen delete_others_books
Privé berichten bewerken edit_private_books
Gepubliceerde berichten bewerken edit_published_books

Dit is een erg krachtige techniek om op eenvoudige wijze het beheer van custom post types verder in te richten. Voor beheerders kan het echter lastig zijn om de verschillende gebruikersrollen en bijbehorende capabilities te beheren. Als een beheerder namelijk de drie gebruikersrollen ‘Beheerder’, ‘Auteur’ en ‘Redacteur’ toegang wil geven tot het boeken beheer moeten er vrij veel capabilities toegevoegd worden.

Er zijn gelukkig een aantal handige WordPress plugins beschikbaar waarmee gebruikersrollen en capabilities eenvoudig beheerd kunnen worden. Zo maken we bij Pronamic vaak gebruik van de Members plugin van Justin Tadlock. Maar ook de Use Role Editor plugin van Vladimir Garagulya is erg populair voor het beheren van gebruikersrollen.

WordPress members edit role

Via deze plugins kan bijvoorbeeld de capability ‘read_book’ toegevoegd worden aan de gebruikersrol ‘Beheerder’ zodat beheerders de boek berichten kunnen lezen.

Altijd op de hoogte blijven?