Menu

WordPress taxonomie in custom menu

Remco 7 juli 2014

WordPress taxonomieën zijn een erg krachtige techniek om WordPress berichten en pagina’s in te delen. Standaard kunnen berichten ingedeeld worden in categorieën en tags, maar dit is uit te breiden naar veel meer taxonomieën. Ontwikkelaars kunnen met de register_taxonomy() functie hun eigen taxonomieën definiëren.

Dit wordt door steeds meer ontwikkelaars gebruikt om maatwerk functionaliteiten te realiseren. Zo wordt bijvoorbeeld binnen de WooCommerce webwinkel oplossing taxonomieën gebruikt om producten in te delen in type, categorieën en tags. Ook bestellingen worden met behulp van een taxonomie ingedeeld op status (in afwachting, in verwerking, in de wacht, voltooid, etc.).

https://github.com/woothemes/woocommerce/blob/v2.1.11/includes/class-wc-post-types.php#L27-L214

Vaak worden WordPress taxonomieën gebruikt voor het indelen van WordPress berichten en pagina’s. De WordPress taxonomieën techniek is echter zo opgezet dat deze ook gebruikt kan worden om andere objecten in te delen. Hierdoor kunnen ontwikkelaars de taxonomieën ook voor andere doeleinden inzetten.

Pronamic gebruikt bijvoorbeeld binnen de Orbis Timesheets plugin ook een WordPress taxonomie om werkregistraties in te delen in verschillende activiteiten. Hierdoor kunnen we werkregistraties indelen in activiteiten zoals ‘Programmeren’, ‘Acquisitie’, ‘Administratie’ en ‘Ontspanning’.

Met behulp van de volgende code registeren we de activiteiten taxonomie voor werkregistraties:

Door geen objecttype te definiëren is deze taxonomie niet gekoppeld aan een WordPress berichttype. Hierdoor zal deze taxonomie ook niet zichtbaar zijn in het WordPress admin menu. De taxonomie is echter eenvoudig toe te voegen aan een menu item met behulp van de volgende code:

In onderstaande schermafbeelding is te zien hoe de ‘Activities’ taxonomy onder het ‘Timesheets’ menu valt:

WordPress taxonomy custom menu

Zodra we echter naar de ‘Activities’ pagina navigeren verspringt het bovenliggende active menu item van ‘Timesheets’ terug naar ‘Posts’.

WordPress taxonomy custom menu parent

Standaard gaat WordPress er namelijk van uit dat een taxonomy is gekoppeld aan een berichttype. Daardoor zal het bovenliggende actieve menu item ook automatisch een berichttype zijn. In het geval een maatwerk taxonomy zoals de activiteiten voor werkregistraties is dat echter niet gewenst. Gelukkig kan er binnen WordPress op bijna elke functionaliteit ingehaakt worden. Zo kunnen we ook het actieve bovenliggende menu item eenvoudig wijzigen met behulp van onderstaande code:

WordPress taxonomy custom menu parent

Op deze manier zijn WordPress taxonomieën ook erg goed inzetbaar voor maatwerk oplossingen binnen WordPress. Een groot voordeel van het inzetten van deze bestaande WordPress techniek is dat de taxonomieën eenvoudig te beheren zijn via WordPress. Het toevoegen, wijzigen en verwijderen van nieuwe termen is namelijk standaard al beschikbaar in WordPress.

Altijd op de hoogte blijven?