Social media site bouwen met WordPress en BuddyPress: waar moet je opletten?

WordPress is een uitstekend CMS, tegenwoordig allang niet meer alleen voor een ‘weblogje’, maar voor volledige websites, met eventueel achterliggende subsites voor de behandeling van specifieke onderwerpen. Het geheel kan in één fraaie omgeving prima worden beheerd. BuddyPress is een ‘sociale media’ plug in, die bovenop WordPress de functionaliteit biedt om o.a. vrienden, groepen, forums en evenementen toe te voegen. Het samenspel van die twee vraagt echter nogal wat aandacht.

• Combinatie van verschillende losse elementen vraagt in BuddyPress omgeving extra aandacht
• Opdrachtgever die de bouw in elk detail meemaakt of mee wil maken, kan verwarde indruk krijgen door wisselen van plugins, CSS- en PHP aanpassingen
• Geen enkele ‘eigen’ oplossing gaat live zonder uiteindelijk noodzakelijk beheer, elke opdrachtgever hoort de taken en kosten  daaromtrent te weten
• BBPress forum integratie binnen BuddyPress wordt gelukkig stuk eenvoudiger

Als gebruiker van Hyves, Ning, Facebook of LinkedIn hoef je niets aan het beheer van de eigen omgeving te doen. Het zijn immers die grote partijen die zorgen voor stabiliteit, backup en functionaliteit. Als je zo een omgeving in eigen beheer gaat ontwikkelen, vraagt dat zeker een stuk beleid ten aanzien van die punten. En dat gaat wat verder dan het beheer van alleen een WordPress omgeving. Hoe komt dat?

BuddyPress is een plugin, daarmee zou de suggestie gewekt kunnen worden, dat het een kwestie van plug & play is en de handel draait. Ik heb inmiddels ervaren dat BuddyPress nogal wat beheer vraagt. Ten eerste heeft BuddyPress persoonsgebonden functies, dat wil zeggen dat BuddyPress knoppen toevoegt en dus  menu’s, waarin de naam van een ‘aangesloten lid’ is verwerkt. Dat is dus afwijkend van een gewone WordPress omgeving, omdat daar de menu’s niet aan ingelogde personen zijn gekoppeld.

Opzet zoals onlangs ontwikkeld

De menuknoppen van BuddyPress moeten dus in een gekozen thema worden opgenomen. Daar ontstaat een eerste onderwerp welke vooral vanuit de vormgeving nogal wat vragen opwerpt. Een goede user-interface en dus een zorgvuldig gekozen menustructuur mag wat mij betreft nooit afhankelijk zijn van een plugin die op geheel eigen wijze een menu ‘neerzet’ op een plek waar de plugin dat wil. BuddyPress werkt dus niet naadloos samen met elk vormgevingsthema, welke ‘stand-alone’ in WordPress wel kan worden gebruikt. Er zijn er genoeg die dat – al dan niet met wat extra handelingen – best redelijk doen. Een voorbeeld van zo een thema is Suffusion (met ‘hulp’ van de Suffusion BuddyPress pack – plugin). Daarentegen zijn er ook genoeg betaalde thema’s die al helemaal geen rekening houden, met de eventuele integratie van BuddyPress. Het fraaie thema PlatformPro resulteert samen met BuddyPress in een rommelige opbouw van de site met dito menu verschijnselen. BuddyPress werkt overigens prima (en prachtig) binnen een aantal specifiek daarvoor ontwikkelde thema’s, zoals Mingle van Themeforest. Maar er zijn ook nogal wat ‘BuddyPress compatible themes’ die qua look&feel de nodige beperkingen kennen in de basis instellingen en vragen in sommige gevallen handmatige CSS aanpassingen, waarvoor niet alleen kennis en kunde nodig is, maar ook al een stukje systeem- en update beheer. Als je niet de wakende hand hebt van een gedreven vormgever, dan kan de keuze van een op BuddyPress gericht thema een prima oplossing zijn. Het kiezen van een theme is dus een combinatie van technische- en vormgevings aspecten. Voor het gemak laat ik – nu –  de rol van Theme Frameworks om een parent theme vanaf de basis zelf te ontwikkelen, even buiten beschouwing.

Bovenop de combinatie WordPress, BuddyPress en een uiteindelijk gekozen thema, heb je ook nog te maken met plugins. Ook hier zijn een aantal specifieke plugins ontwikkeld, die puur zorgen voor uitbreidingen van de BuddyPress functionaliteit. Deze plugins kunnen nauwelijks in alle aspecten continu rekening houden met de combinatie van de 3 genoemde variabelen. Ten eerste heb je te maken met versiebeheer binnen die combinatie, waardoor plugins af en toe afwijkende resultaten kunnen geven, zowel in vorm als functie.  En het is al helemaal onmogelijk om in te spelen op thema variabelen. Dat betekent dat het ook hier kan voorkomen dat er handmatig in CSS bestanden en soms zelfs in de kern van de PHP bestanden gesleuteld moet worden om iets ‘mooi’ te krijgen. En dan hebben we het hier al helemaal niet over afwijkende JavaScript aanroep routines die afhankelijk zijn van een bepaalde versie van een standaard bibliotheek, zoals bijvoorbeeld JQuery.

Is dat allemaal erg? Nee, dat is het niet, elke omgeving waarin nogal wat complexe functionaliteit wordt samengevoegd, vraagt om steeds meer extra stukjes beheer. Dus een combinatie van WordPress, BuddyPress en (al dan net complex) thema en de nodige plugins vraagt meer dan alleen maar de update knop indrukken wanneer ergens een nieuwe versie beschikbaar is gekomen. Dat betekent dat goede documentatie en deskundig beheer noodzakelijk is om dergelijke omgevingen te kunnen beheren. Het is uitermate verstandig van te voren na te gaan of er genoeg kennis, kunde en wil bij de klant aanwezig is omdat zelf te doen, versus de vraag of je dat als bouwer aan je klant aanbiedt.

Opensource werpt vaak diverse gedachten op, de woorden gratis en makkelijk zijn al gauw genoemd. Dat eerste mag dan misschien grotendeels waar zijn, het aantal uren welke een volledig geïntegreerde ontwikkeling van een goed samenspelend geheel aan gereedschappen vraagt, is aanzienlijk en vraagt om een gedegen voorbereiding van een passende offerte, waarin alle aspecten duidelijk worden verklaard.

Mijn ervaringen met de combinatie WordPress, BuddyPress en uitgebreid thema en nogal wat plugins (al dan niet met Nederlandse taalbestanden), zijn nogal verdeeld. Het is zeker niet zo dat elk thema en elke plugin ‘gedoe’ oplevert. Maar als je in intensieve samenwerking met je opdrachtgever toch meer dan eens tegen kleine en soms zelfs grotere CSS en/of PHP beperkingen/bewerkingen aanloopt – ondanks alle voorzieningen die daarvoor zijn, zoals ChildThemes – dan komt een moment waarop je je beiden afvraagt of de gekozen weg wel de juiste is.

Ik zal nu na mijn ervaringen met een behoorlijk groot BuddyPress project wat voorzichtiger zijn meteen met deze plugin te gaan zwaaien als de enig gelukzalige oplossing voor het maken van een eigen sociaal netwerk. Er zijn alternatieven in de vorm van wat meer losse plugins, die misschien wat minder onderlinge synergie bieden, maar in ieder geval geen – of heel wat minder – eisen stellen aan het te kiezen thema, dus de vormgeving of samenwerking met andere plugins. Of er dan vervolgens veel water bij de wijn moet worden gedaan, laat ik na een volgende project wel weten.

Bekijk ook de presentatie: WordPress onder de motorkap
Momenteel test ik de eerste Release Candidate van BuddyPress 1.5

1 reactie

  1. Nick vd Veerdonk op 14 april 2013 om 09:44

    Bedankt voor een helder en mooi geschreven artikel, bookmarked!