Hoe je gerelateerde pagina’s mooi samen houdt
Op het moment dat ik dit schrijf hebben we iets meer dan een jaar Gutenberg als de standaard editor voor WordPress. En ik moet eerlijk toegeven dat ik na een aanvankelijk eerste weerstand tegen editor nu toe moet geven, dat de nieuwe editor op de meeste punten een grote verbetering is ten opzichte van de oude.
Toch schijnen de makers van Gutenberg volkomen ongenegen te zijn één niet onbelangrijke bug in Gutenberg te repareren. In een groot aantal -echter niet alle- gevallen weigert Gutenberg namelijk de ‘Parent page’ dialoog te laten zien. Er zijn tientallen mogelijke oorzaken hiervoor, maar de basis is eigenlijk het feit, dat de nieuwe editor op de achtergrond contact maakt met de server en niet goed om kan gaan met een situatie waar dit contact mislukt.
Nu, ruim een jaar later, is dit probleem nog steeds niet opgelost of eigenlijk, het blijft zijn lelijke kop opsteken in allerlei nieuwe situaties.
En toch willen we parent pages!
En toch willen we met ‘parent pages’ kunnen werken. Al was het alleen maar vanwege de SEO. Bedenk je bijvoorbeeld eens een volgende situatie. Je hebt een groot aantal webpagina’s op je site over verschillende onderwerpen. Maar in zijn algemeenheid zijn ze in drie categorieën in te delen: Opleidingen, Workshops en Consultancy bijvoorbeeld.
Wat je graag zou willen is dat Google zou ‘weten’ welke pagina’s waartoe behoren. En zoiets kan je prima doen door een ‘hoofdpagina’ “Opleidingen” te maken, met daaronder alle opleidingen, vervolgens een pagina over ‘workshops’ etc. Dus iets als:
https://mijncoolewebsite/opleidingen/origami-voor-beginners/
https://mijncoolewebsite/opleidingen/punniken-voor-gevorderden/
https://mijncoolewebsite/opleidingen/creatief-met-kurk/
https://mijncoolewebsite/workshops/kraanvogel-vouwen/
https://mijncoolewebsite/workshops/punnik-je-pannenlap/
https://mijncoolewebsite/consultancy/skype-consult-punniken/
https://mijncoolewebsite/consultancy/creatieve-sessie-punniken-met-paarden/
Op deze manier ‘weet’ Google dat bepaalde pagina’s opleiding-gerelateerd zijn, andere workshop gerelateerd etc. Goed om op de juiste momenten gevonden te worden. Bovendien is het handig, dat in het overzicht van de pagina’s in je WordPress dashboard deze pagina’s netjes onder de hoofdpagina worden getoond. Je hebt dus alles lekker georganiseerd bij elkaar. Maar dus niet, wanneer je geen ‘Parent page’ of ‘Hoofdpagina’ meer aan kan geven, omdat Gutenberg zich verslikt in haar eigen complexiteit.
Het probleem oplossen
Hoe lossen we dit op? Voor de WordXPression site hoefde ik dit niet op te lossen. Ik had immers de meeste hiërarchische structuren al voor elkaar voor ik met Gutenberg begon.
Maar heel recent werd ik toch met het probleem geconfronteerd. Zoals je wellicht weet is begin dit jaar de ‘T-Shirt Academy‘ live gegaan. En aan die Academy hangt een affiliate programma. Omdat dat programma heel veel opties biedt, heb ik daar een uitgebreide handleiding voor geschreven. Die wilde ik graag georganiseerd opnemen op de site. Met één ‘inhoudspagina’ en alle andere pagina’s daaronder.
Ik ben dus nog eens gaan googelen en vond, dat het probleem nog steeds bestond. En de makers van Gutenberg nog steeds de neiging hebben om alle discussie hierover zo snel mogelijk af te sluiten.
Met andere woorden, een oplossing van het probleem hoeven we niet te verwachten. Hoe werken we hier omheen?
All googelend kwam ik gelukkig ook een oplossing voor het probleem tegen. En om eerlijk te zeggen, een hele mooie.
WP Nested Pages
De plugin lost het daadwerkelijke probleem niet op. Je ‘Hoofdpagina’ meta-box blijft onzichtbaar als je hem al niet kon zien. Maar hij lost het probleem één niveau hoger op. Op het niveau van de lijst.
WP Nested Pages is een plugin die de ‘normale’ overzichtslijst van je pagina’s aanpast. Hieronder zie je een screenshot van de pagina
Wanneer ik een pagina onder een andere pagina wil toevoegen, dan kan ik eenvoudig over die paginaregel heen gaan. Op dat moment wordt er een aantal keuzeopties zichtbaar, waarvan één er een drietal punten is. Klik je op die drie punten dan krijg je een menu, zoals je hier in beeld ziet.
Op deze manier kan je pagina’s toevoegen onder de huidige pagina door simpel te kiezen voor ‘Add Child Pagina’. Op dat moment wordt onderstaande dialoog zichtbaar:
Het eerste waar ik je aandacht even op wil vestigen is de ‘plus’ in het blauwe blokje links. Als je hierop klikt, komt er een extra titel-veld beschikbaar. Je kan namelijk ineens meerdere pagina’s tegelijk toevoegen door meerdere titels in te geven.
Drag and drop interface
Heb je al pagina’s gemaakt die je als child page wilt gebruiken, dan kan je eenvoudig door de pagina ‘op te pakken’ en te laten ‘vallen’ op de beoogde parent page een parent-child relatie tussen twee pagina’s maken. Eigenlijk werkt het in grote lijnen op eenzelfde manier als de menu editor.
Maar laten we nog eens goed kijken naar het eerste plaatje. Dat met al die pagina’s. Bij ‘Handleiding Affiliates’ zie je een driehoekje staan wat naar beneden wijst. En daaronder staan de child pages. Klik ik op die driehoek, dan ‘klapt’ de lijst met child pages in. Door de lijst in te klappen heb ik een veel beter overzicht van de verschillende pagina’s.
Synchronisatie met het menu
Ik maak er zelf geen gebruik van, maar het is ook mogelijk om direct de pagina’s te synchroniseren met het menu.
Eén van de grote onhebbelijkheden van WordPress is volgens velen, dat je na het maken van een pagina, deze pagina apart in het menu op moet nemen. Dit gebeurt op geen enkele manier automatisch.
Dat is dus nu afgelopen. Op het moment dat je kiest voor een synchronisatie tussen menu en pagina’s houdt de plugin dit verder voor je bij. Wil je af en toe een pagina niet opnemen in het menu, dan kan je dit afzonderlijk aangeven. Het gesynchroniseerde menu heet ‘nested pages’ en wil je dit gebruiken, zal je dit menu wel toe moeten kennen aan één van de menulocaties in je thema.
Hidden pages
Sommige pagina’s wil je zelden of nooit aanpassen. Denk hierbij bijvoorbeeld aan algemene voorwaarden, privacy policy en andere vergelijkbare pagina’s. Je kan deze ‘hidden’ maken in het overzicht. De pagina zelf is nog steeds gewoon aanwezig en zichtbaar in de front-end, maar niet in het overzicht, tenzij je de optie ‘Show hidden pages’ activeert. Op deze manier kan je een hoop ballast uit je overzicht verwijderen.
Conclusie
Ik was op zoek naar een plugin om een technisch falen van WordPress op te lossen. Tot mijn blijde verrassing heb ik een plugin gevonden die veel verder gaat. Een handige plugin die ik eigenlijk iedereen aan kan raden.