Categorie: Uncategorized

  • Meertalige WordPress: van frustratie naar custom plugin

    Nu mijn website draait met WordPress, wilde ik de content graag in meerdere talen aanbieden. Uit principe vind ik dat mijn website beschikbaar moet zijn in het Nederlands – het is tenslotte mijn moedertaal. Maar omdat de voertaal van het internet Engels is, wilde ik de content ook in het Engels kunnen aanbieden.

    Tijd om te kijken wat er beschikbaar was qua WordPress plugins voor meertalige websites.

    Polylang

    Na wat onderzoek bleek Polylang een van de populairste plugins te zijn voor meertalige WordPress websites. De plugin heeft een goede reputatie en lijkt goed onderhouden te worden. Perfect, dacht ik.

    Maar al snel liep ik tegen een probleem aan. Hoewel Polylang goed functioneert met de klassieke WordPress editor, bleek de ondersteuning voor de moderne Gutenberg editor minder uitgebreid te zijn. Als voorbeeld miste er een Gutenberg block waarmee ik een taal selectie menu aan mijn pagina’s kan toevoegen.

    Voor een website die draait op de nieuwste WordPress versie met Gutenberg als editor, voelde dit als een gemiste kans.

    Zelf Doen

    Ik heb al eerder blokken voor Gutenberg ontwikkeld, dus de basis voor het maken van custom blocks was bekend. Het doel was simpel; een block dat de beschikbare talen van de huidige pagina ophaalt uit Polylang en deze presenteert als links waarmee bezoekers kunnen schakelen tussen talen.

    Het Resultaat

    Na wat experimenteren en documentatie doorspitten, lukte het om een werkende Gutenberg block te bouwen die integreert met Polylang’s functionaliteit. Je kunt het resultaat ergens op deze pagina vinden.

    Voor mensen die de block zelf willen proberen: de code en plugin is beschikbaar op https://github.com/simonmeulenbeek/smb-language-switcher. Houd er rekening mee dat de plugin niet uitvoerig getest is en dat er waarschijnlijk bugs en wijzigingen voorkomen.

    Problemen kunnen gemeld worden door een issue aan te maken in de repository. Pull requests zijn uiteraard ook welkom.

    Nu kan ik content delen in zowel het Nederlands als het Engels, zonder afhankelijk te zijn van de beperkingen van bestaande plugins.

  • Hello World!

    Als techneut werd mij gevraagd om iemand te helpen met het opzetten van een website voor hun nieuwe bedrijf. Ze hadden zelf al op internet gekeken, maar er zijn online zoveel aanbieders en opties dat het al gauw een moeilijke opgave bleek te zijn. Waar zoek je naar? Wat is een goede prijs? Hoe vergelijk je aanbieders?

    Voor mezelf heb ik vroeger altijd zelf gehost. Eerst statische HTML met Apache, later Nginx, en uiteindelijk Ghost CMS op een van mijn Raspberry’s. Leuk om mee te experimenteren, maar voor een bedrijfswebsite die als visitekaartje moet fungeren, is zelf hosten natuurlijk geen optie.

    Maar toen ik keek naar de bestaande aanbieders, en vooral hun prijzen, kwam ik tot de conclusie dat ik toch beter zelf iets kon opzetten.

    .Dus heb ik gekozen voor een ‘unmanaged’ VPS. Een virtuele server in de cloud, waarop ik een CMS kan draaien, en zo de klant ongeveer dezelfde ervaring kan bieden als die online aanbieders, maar dan voor een kwart van de prijs.

    Na wat onderzoek koos ik voor WordPress als CMS. Hoewel ik zelf Ghost gebruikte, is het ecosysteem van WordPress enorm. Als de klant later iets speciaals wilt, is de kans groot dat er al een oplossing voor bestaat. Ook is de editor ervaring van WordPress veel gelikter, en veel bruikbaarder voor een klant die potentieel niets van websites weet.

    Omdat ik een ‘unmanaged’ vps gebruik, moest ik wel zelf alles instellen en configureren. Wat dat betreft heb ik gekozen voor Ubuntu-server met rootless Docker containers en Caddy als reverse proxy. Elke applicatie heeft een git repo met docker-compose file en documentatie. Voor beveiliging draait alles via Tailscale, met SSH alleen toegankelijk vanuit mijn eigen Tailscale netwerk.

    Als bonus gaf dit project me ook weer de kans om mijn eigen domein af te stoffen. Na mijn verhuizing heb ik nog geen tijd genomen om mijn eigen hosting weer op orde te krijgen, dus die lag een tijdje braak. Maar dit project gaf me een mooie kans om dat weer op te pakken.