Why the next 10 years of WordPress Blog will smash the last 10

Why the next 10 years of WordPress Blog will smash the last 10

Dit is een Post die ik al lang wil schrijven. Het voelt als een internationale voetbalcarrière, voortgezet bij de kleine club die lang geleden m’n hart heeft gestolen. Van Barcelona naar Telstar. Eindelijk.

We bouwen met Instant Publishing teams al 25 jaar websites voor grote ondernemingen. Als je gewend raakt aan budgets met “mucho nullo”, dan vraag je je wel eens af: “kunnen we na de aanschaf van de publicatiesoftware nog wat geld overhouden om met z’n allen gezellig een ijsje te eten?”. Duur voelt vaak heel ongemakkelijk aan. Ik krijg steeds meer de neiging om de nadruk te leggen op het gebruik van betaalbare en krachtige software, en de onderdelen slim samensmeden.

Wij zijn programmeurs. We werken met Java en PHP. We hebben naast onze opdrachten voor de Vodafone’s en de Volkswagens van deze wereld ook jarenlang voor bijna honderd kleine- en middelgrote klanten een zelfgemaakt CMS gebruikt. 3 keer raden: het Instant Publishing System (IPS). We hebben er ook vrij grote projecten mee gedaan. 

Als ik achterom kijk dan vraag ik me af: “wat heeft ons bezield om een eigen systeem te maken?” Het antwoord is eenvoudiger dan gedacht. We hebben veel mensen op HBO niveau Informatica opgeleid. Wat is effectiever en leuker dan in de klas games en website publicatie systemen te maken?

Als je programmeur wilt worden, dan moet je leren in “patronen” te programmeren. Coderen met ontwerppatronen betekent dat je een generiek opgezette softwarestructuur maakt, die veelvoorkomende ontwerpproblemen oplost. Een CMS zit er stampvol mee. Zo werd IPS een uitstekend leermiddel, en konden we er ook eenvoudig klanten mee helpen. Heel lang, en heel steady, maar dan … gaat het knagen. De wereld staat niet stil. 

Eigenlijk zijn de beste platformen Open Source, met communities die er vele uitbreidingen op maken. Dat maakt de keuze een stuk makkelijker, en kan je gerust bye bye zeggen tegen je eigengemaakte soep. Thank you for the moments, Instant Publishing System, welcome Instant Publishing System.com

Eigengemaakte soep, wel lekker maar niet krachtig genoeg

Eigengemaakte soep, wel lekker maar niet krachtig genoeg. Photo courtesy of Samantha Thayer

Welk open source CMS heeft een eenvoudige en krachtige redactieomgeving, is uitbreidbaar, betaalbaar, vriend van Google, veel gebruikt in de wereld, bij de tijd met browser ondersteuning, mobiel vriendelijk, geschikt om met inbound marketing tools uit te breiden, en vooral: is naamsbekend bij kleine, middelgrote en zelfs grote ondernemers? 

Let it be: WordPress

Nee, geen Hippo, en er is niet veel mis met Drupal, maar ik ben overtuigd dat Matt Mullenweg’s WordPress Content Management platform een goede keuze is. Het lijkt net zo goed een vreemde keuze als een inkopper. Wat vinden wij in WordPress onder de motorkap nou zo spannend om de sterke voorkeur te begrijpen? Een commerciële uitleg, gecombineerd met een kijkje in de ingewanden van het systeem. Wat kan het? Wat kan het niet? Hoe kan je het uitbreiden? Hoe kan je het combineren? Wij zijn heel erg fan van de verbinding tussen WordPress en Spokal inbound marketing.

Use WordPress arguments

Use WordPress arguments. Photo courtesy of Frank G

Business arguments

WordPress is Open Source en gratis. Het wordt sinds 2003 door duizenden programmeurs onderhouden. Je kunt overal WordPress programmeurs inhuren om eenvoudige installatie- en configuratie werkzaamheden uit te voeren. Maar ook het roer om, en helemaal omschakelen naar WordPress is eenvoudig.

  1. Je huidige website (merk: eigen gemaakte soep) met je bestaande vormgeving overzetten naar een responsive (mobiel) WordPress design, en daarbij al je content migreren, kost rond $160 bij PeoplePerHour.com
  2. Je kunt fantastische WordPress vormgeving (skins) voor ongeveer $40 kopen op ThemeForest.com
  3. Voor €100 per jaar heb je snelle en betrouwbare WordPress hosting.

Wat heb je dan wel, en wat heb je niet? Een betaalbaar systeem wil nog niet zeggen dat je er een schop tegen geeft en daarna allles vanzelf gaat. Wat moet je allemaal nog doen?

Content maken, veel content maken, that’s for shure, en hoe beter je daarbij geholpen wordt, hoe liever.

Bij professionele webredacteuren zien wij vaak een broeierige strijd met webmasters. Waar menig systeem met vaste templates en indelingen werkt, denkt de redacteur: “geen mij een omgeving waarin ik net zo eenvoudig mijn tekst kan opmaken, als pagina’s en menu’s kan aanmaken, en nog het liefst de indelingen (vlakverdelingen) op de pagina’s ook.” Dit concept is standaard in de WordPress redactieomgeving opgenomen, en uitgebreid met short-codes van Plug-ins. 

Sommige redacteuren onderhouden hun WordPress websites vanaf de mobiele telefoon.

WordPress, en met name de uitbreiding met de Spokal Plug-in, geeft een geweldige Search Engine Optimization (SEO). De extensie met Spokal is een uitgebreide monitor, en het verhoogt het aantal websitebezoekers. Google is stapelgek op de opzet en structuur van WordPress Blogs. Ongeveer 20% van alle websites in de hele wereld (75 miljoen) zijn gemaakt met WordPress, waaronder de The New York Times.

Choises

Choises. Photo courtesy of Bill Dickinson

Technical arguments

Nu even iets technischer. Waarom wordt een WordPress website een Blog genoemd? Is dat een nadeel, of kan het nog andere dingen? Is dat dan zo anders dan andere systemen? 

Ieder Content Management Systeem kent het concept: “content types”. Het is: “een Entiteit in ons bestaan”. Zeg maar: een model van “iets”. Dat kan zijn: een Artikel, een stuk Fruit, een Vakantie, een Schip. Bij WordPress hebben ze zich op een simpel en specifiek model geconcentreerd:  “stukken tekst die je met een foto of video in een Artikel stopt”

Vul je een model in met 1 of meer elementen, dan heb je dus “content”. Het Schip “Neeltje Maria” is content van het type Schip, 5 Schepen zijn content, en een doos Bananen is ook content. Daarnaast is ook interessant te bedenken wat je met die content kan doen. Lezen, Liken, Bestellen, enzovoorts. Dit wordt verzorgd door functionaliteit en is onlosmakelijk verbonden met content. Gooi een doos bananen in een winkelmandje. Klik op de Like knop bij een Artikel, of vraag meer informatie aan over een reis met de Neeltje Maria.

WordPress werkt in beginsel alleen met het content type Artikel. Dat klinkt nu nog wat beperkt.

Artikelen wil je publiceren in een frisse opmaak, met mooie vormgeving, en als je content typt die nog niet klaar is, dan wil je dat het systeem even wacht met online zetten. Dit heet: “Content Management”. Dus WordPress is een Content Management Systeem (CMS), dat alleen “Artikelen” kan publiceren. WordPress kan standaard geen content type “Banaan” vastleggen, maar dat gaan we straks wel zelf toevoegen. We all Like Bananas.

Content type Banaan. We all Like Bananas.

Content type Banaan. We all Like Bananas.. Photo courtesy of Jon

Bij WordPress hebben ze vanaf het prille begin hele slimme functionaliteit toegevoegd aan hun eenzame content type Artikel. Website bezoekers die Artikelen lezen kunnen er namelijk op Reageren. Zij zijn te gast in een Blog. Ze lezen niet alleen het Artikel, maar ze voegen er een expliciete handeling aan toe. Ze kunnen Reageren op het Artikel. Plotseling heet het publiceren van Artikelen: Bloggen

WordPress is een CMS met Blog functionaliteit van het eenzame content type: Artikel.

Nu publiceren we een Artikel als: een Post met een Reactiemogelijkheid. “Vroeger” werd dit simpele idee gezien als het openen van de heilige deur naar de Social Media hemel. 

De kracht is tegelijk de beperking

Is er iets mis met alleen Artikelen? Je kan er toch alles mee zeggen?

Dat klopt. Je kan schrijven dat: “Ajax een benauwde 2e helft speelde tegen Legia Warschau”. Maar je kan ook schrijven over een Banaan. En over andere soorten Fruit. 

Maar een Artikel gebruiken om eigenschappen van Fruit uitvoerig te beschrijven, en er dan ook functionaliteit aan toevoegen, is niet zo handig. Ja, je kan het lezen, en er op reageren, maar je kan er niet mee rekenen. Rekenen met Fruit? Ja, dat doe ik heel vaak, en jij ook 🙂

Als je de beschrijving van Fruit uitbreidt met de eigenschap: “Prijs”, en er zelfs gerelateerde informatie aan verbindt, zoals “Land van herkomst”,of welke Groenteboer het te koop heeft, dan kan je hartstikke rekenen met Fruit.

Is een Banaan goedkoper bij Groenteboer Jansen dan bij Groenteboer Pietersen? That’s the golden question.

Rekenen met fruit

Rekenen met fruit. Photo courtesy of Christopher Sessums

Stop je al deze beschrijvende informatie in een Artikel, dan moet je heel erg je best doen om bij verschillende Fruitsoorten en verschillende Groenteboeren alles eenvormig vast te leggen. Als het goed is ga je denken in termen van “tabellen” in Artikelen, om zo de verschillende eigenschappen op dezelfde manier vast te leggen. Dat is een stukje op de goede weg, maar op deze manier met de informatie in Artikelen rekenen? No way.

Je kan de Banaan ook niet in een winkelmandje stoppen, als je e-commerce functionaliteit wilt gebruiken.

Dus slecht nieuws: Met WordPress kan je geen Bananen verkopen !

Haha, no Bananas in WordPress, huh, told you so

Haha, no Bananas in WordPress, huh, told you so. Photo courtesy of Magda

Om met WordPress Bananen te verkopen moet je andere content types kunnen inrichten, en er extra functionaliteit aan toevoegen zoals: stop de Bananen in mijn Winkelmandje, of, welke Vakantiereizen vertrekken tussen nu en volgende maand met de Neeltje Maria? Dat kan WordPress niet, want het is een Blog. 

WordPress eenvoudig uitbreiden in 6 stappen 

Maar … het is niet zo maar een Blog. Het is een wonderkind, en dat is het. WordPress heeft een API (Application Program Interface) waarmee andere programmeurs naar hartenlust kunnen doorbouwen aan het platform. 

WordPress heeft een fantastische voorziening gemaakt om “Plug-ins” te laten meedraaien in haar core systeem via deze API. 

Er zijn ongeveer 30.000 Plug-ins met extra functionaliteit die aan het systeem kunnen worden toegevoegd. Plug-ins zijn meer dan alleen maar een stukje software. Het zijn componenten die aan strikte afspraken voldoen, en daardoor in het systeem passen, maar ook van het systeem gebruik kunnen maken. Nee, WordPress gebruikt geen Open Standaarden, maar op een of andere manier (ongetwijfeld ook vanuit een commerciële drive) heeft de programmeurswereld zich er massaal op gestort. En het werkt ook nog.

Hoe werkt de WordPress API?

1) De basis

Stel je voor: je voegt een Kalender Plug-in toe aan WordPress, dan zou het bijvoorbeeld handig zijn als het basissysteem vertelt in welke taal de bezoeker naar de website kijkt, zodat de Plug-in kan reageren: “Hello, this is the calendar for January, and I tell you in English (not in Dutch) because you are an American. Thank you very much, have a nice day.” WordPress heeft hiervoor de WPML “Taal-standaard” bedacht, die dwars door de grenzen van het systeem communiceert naar iedere Plug-in en terug.  Dat heen en weer communiceren is de kern van alle uitbreidingen.

Als we zoals beloofd kijken we eens onder de motorkap. Take a look at het datamodel van de WordPress core

WordPress model

WordPress model.

Zonder dat je er verstand van hoeft te hebben kan je zeggen: er zijn 11 tabellen die de basis van WordPress vormen om te kunnen Bloggen. Dat is niet veel. Dus tientallen miljoenen mensen kunnen Bloggen, Posten en Reageren met zo’n eenvoudig model. 

Maar geen Bananen verkopen …

Als je dat wil dat is de vraag: “Kan je ook andere content typen aan WordPress toevoegen, en hoe communiceert WordPress met Plug-ins die andere content typen en functionaliteit bieden?”

Een WordPress Plug-in is een programma, geschreven in de scripttaal PHP, die een specifieke set van functies of diensten aan de WordPress Blog toevoegt. De integratie wordt bereikt door afspraken over de communicatie vast te leggen in de: WordPress Plug-in Application Program Interface (API).

Wat voor afspraken zijn dat? 

Communication and Hooks

Communication and Hooks.

2) Hooks

Bijvoorbeeld, een Plug-in kan een WordPress “Hook” gebruiken. Dit is een boodschap die WordPress verstuurt, en de Plug-in kan opvangen (met een haak vangen), en daarna het “bewerkte spul” weer teruggeeft aan WordPress. 

Stel, je hebt een Plug-in gevonden die de Titel van jouw Posts altijd “Banaan geel” maakt. Das namelijk heeel mooi.

Nadat de “Yellow” Plug-in bekend is gemaakt aan het systeem, kijkt WordPress bij het tonen van een Post eerst of “Yellow” de Hook: “filter” met de naam:  “the_title” actief heeft. Zo ja, dan geeft WordPress de titeltekst door aan “Yellow” en die geeft de bewerkte, gele tekst terug.

3) Custom tags

Een andere manier om functionaliteit toe te voegen is het gebruik van “Custom tags”.  Deze tags kunnen bijvoorbeeld iets doen met de vormgeving van de tekst in een gewone Post (Ajax-Legia Warschau), door lange stukken tekst in kolommen te verdelen. 

Maar Custom tags kunnen in een Post ook data (content) laten zien die “van de andere kant” uit een Kalender Plug-In komt. 

Bijvoorbeeld: “ik schrijf een tekst in deze Post, en ik wil een datum zien, dus voeg ik (het resultaat van) een Custom tag toe: ‘[calendar date=”4-12-2014″ type=”business”]‘”. 

Onder water roept deze Custom tag in de Kalender Plug-In een stukje PHP code aan. Geef me het resultaat van: calendar_list_date(date, type)

Het resultaat is: “ik schrijf een tekst in deze Post, en ik wil een datum zien, dus voeg ik (het resultaat van) een Custom tag toe: ‘12:30 zakenlunch met Pieter Mulder’“.

4) Options

Een Plug-in kan met WordPress communiceren over de gewenste “Options”. Dit zijn basisinstellingen, bijvoorbeeld bij de Kalender in welke Tijdzone hij moet worden ingesteld.

5) Meta data

Een Plug-in kan met WordPress communiceren over Meta Data. Deze extra velden kunnen aan de eigenschappen van WordPress Posts, Pagina’s en Foto’s worden toegevoegd. Maar ook aan alles wat in de Plug-in wordt onderhouden. De PHP functie add_post_meta() kan zo met een speciaal trefwoordenboek  alles in WordPress en de Plug-in met elkaar verbinden. Je kan dan in een pagina zeggen: geef mij alle WordPress Posts en entiteiten uit de Plug-ins die zijn getagd met het trefwoord: “Spanje”. Dan zie je dus Blog artikelen, en bijvoorbeeld ook Reizen die hetzelfde zijn getagd.

6) King of kings: the Custom Field editor

Als wij nou zo nodig Bananen willen, dan kan de API een nieuwe database op maat aanmaken. De Fruit database. Hmm, lekker.

De “Advanced Custom Fields Plug-in” kan dit model op maat voor je maken. Je krijgt een visuele editor waarmee je nieuwe content types zoals Fruit, maar ook Groenteboeren kan aanmaken. 

De Plug-in maakt in de WordPress redactieomgeving onderhoudspagina’s waarmee jij in de rubriek: “Fruit” de Banaan, zijn prijs en de Groenteboer die het verkoopt invoert. En in een Post kan je dan met een Custom tag een lijst van Fruit en de prijzen laten zien. 

Voila. Zo is WordPress een volwaardig CMS, en meer dan alleen een Blog.

Met een klein beetje extra programmeren (door the guys van Instant Publishing) kan je een overzichten maken welke Groenteboer de goedkoopste Bananen heeft. Of welke functionaliteit je maar kan bedenken.

“This is it”, zou Michael Jackson zeggen 

Je weet nu wat de kracht is van het WordPress systeem. Wij zijn ondertussen overtuigd dat we lekker kunnen voetballen bij een die leuke nieuwe club. 

Instant Publishing kan je helpen met het ombouwen van je website naar een WordPress Blog. We kunnen content migreren, je bestaande of een nieuw responsive design toevoegen, Plug-ins installeren, custom content types maken en integreren in je website.

Maar als je goed leest, dan kan je heel veel zelf … Wij helpen je het allerliefst een stap verder door de Spokal Plug-in te installeren, en leren gebruiken.

Why the Blog use WordPress? Code is poetry.




Leave a Comment