Een plugin die naar de toekomst wijst?

Inhoudsopgave (klik om uit te vouwen)
Toekomst

Een plugin die naar de toekomst wijst? Dat is geen probleem… de toekomst maak je zelf!

Toekomst
Een plugin die naar de toekomst wijst

Deze blogpost is eigenlijk hoofdzakelijk bedoeld voor de trouwe lezers van de WordXPression blog. Ik heb een tijdje terug een kleine plugin voor eigen gebruik gemaakt en dacht eigenlijk dat de plugin mogelijk ook geschikt zou zijn voor andere mensen die bloggen. De plugin is niet uniek en de commerciële waarde ervan is ook niet zo groot, maar het gewoon een handige informatiebron voor de lezers van je blog. Of misschien ook de kopers van je producten.

Posten in de toekomst

Zoals ik meer dan eens geschreven heb in het verleden, ik zorg altijd voor een voorraad blogposts, zodat ik de stress niet hoef te voelen ‘om vandaag een nieuwe blogpost voor morgen te schrijven’. Die stress is funest. En bovendien, wanneer je even uitvalt, dan loop je stuk. Ik probeer altijd minimaal vier blogposts ‘op voorraad’ te hebben.

Dat is handig voor mij. Voor jou maakt het geen verschil, zolang die blogposts maar op tijd komen.

Maar is dat echt waar? In het verleden had ik een kleine plugin die ‘posts in de toekomst’ liet zien. In de sidebar werden alle posts met een publicatiedatum in de toekomst getoond met allen de titel, en de datum waarop de blogpost zou verschijnen. Of dat met het aantal bezoekers nu echt veel verschil uitmaakte, Yoast mag het weten.

Een aardigheidje, meneer Sonneberg, zou Wim Sonneveld zeggen (Theatershow ‘De gulle lach’ 1973).

Het resultaat kan je zien op de website onder iedere post.

Blogposts in de toekomst
Een lijst met toekomstige blogposts.

Zoals je ziet, op het moment dat ik dit schrijf, is deze blogpost nog een concept.

Wat doet deze plugin?

In feite is het een heel eenvoudige plugin. Tenminste, dat was het voor ik er aan begon. Het enige wat hij doet is de meest recente concept- en de minst recente toekomstige blogposts ophalen. Omdat concept blogposts geen ‘datum’ hebben worden die getoond met het woordje ‘binnenkort’ er achter, hebben ze wel een datum (die dus in de toekomst ligt), dan worden de posts die het snelst zullen verschijnen getoond.

Dat was dus eigenlijk versie 0.x ofzo. Ik had er nog geen echte versie aan gegeven. En ik besloot het mijzelf makkelijk te maken, door dit als een shortcode te implementeren.

Maar al ontwikkelend dacht ik, dat het ook wel aardig zou zijn, om een Elementor widget hiervan te maken. En wellicht later ook een Elementor ‘Atomic Element’.

Het geheel was nog steeds een ‘experiment voor eigen gebruik’.

Er gebeurt altijd iets waar je geen rekening mee hebt gehouden

En natuurlijk gaat er altijd wel iets ‘mis’. Nu moet je ‘mis’ niet al te letterlijk nemen, want er is niets ontploft ofzo. Maar toen ik -na hem getest te hebben- de plugin op de productiesite plaatste, gebeurde er iets vreemds.

Nou ja, ‘vreemd’… eigenlijk iets wat ik gewoon kon verwachten. Na een aantal toekomstige blogposts (concept posts) in te hebben gevoerd, viel mij op dat op verschillende pagina’s een andere lijst was te zien. Op sommige pagina’s kwam de concept post wel voor en op sommige pagina’s niet. En ja, je hebt het geraden. Een caching probleem. Want gecachte pagina’s worden gemaakt op het moment, dat de cache is verlopen en iemand de pagina opvraagt. Vraagt Jan om 14:30 een pagina op die nog niet gecached is, dan ziet hij iets anders, dan hij vijf minuten later te zien krijgt, wanneer hij een pagina die al een uur in de cache zit ziet.

Bedenk je daarbij, dat de WordXPression site de blogpagina’s 24 uur cachet en ik zit op die dag een aantal nieuwe titels in te voeren, dan krijg je op iedere pagina een andere lijst.

Dus dat moest ik anders oplossen. De tekst die hieronder wat inspringt en cursief is, kan mogelijk wat te technisch voor je zijn, maar ervan uitgaand, dat er ook mensen zijn die de code-kant van de plugin willen kennen(per slot van rekening trekken de WordXPression snippet base en de pagina over de cursus WordPress Developer heel wat verkeer), vertel ik het toch maar.

De beste oplossing om iets onafhankelijk van serverside caching te tonen, is de informatie via AJAX en JavaScript uit de database op te vragen. Het nadeel hiervan, is dat dit extra tijd kost. Om het één en ander te versnellen, kan het resultaat worden opgeslagen in een apart database veld, een zogenaamde ‘transient’.

Tijdens mijn cursus WordPress Developer leg ik een transient altijd graag uit als een ‘cache binnen een cache’. Het zijn tijdelijk opgeslagen gegevens, die een bepaalde tijd ‘geldig’ zijn. Daarna worden de gegevens weer opnieuw opgevraagd uit de database. Omdat iedere keer dat de plugin wordt gebruikt, dezelfde gegevens worden opgevraagd, heeft ‘page caching’ geen invloed op het resultaat. Alle pagina’s halen hun gegevens uit dezelfde bron.

Voor de mensen die in het verleden mijn cursus WordPress Developer hebben gevolg, kan het misschien interessant zijn beide versies van de plugin met elkaar te vergelijken om te zien hoe ik deze transients heb geprogrammeerd. Het introduceren van transients kan vaak performance knelpunten in je code behoorlijk versnellen. Je ziet gelijk ook hoe je een Elementor Widget opgebouwd is.

En de bullets

Een tweede ding wat ik toch ook wel fraai vind, is wanneer je ook een bulleted list kan gebruiken. In mijn eerste versie was dat nog niet mogelijk. In versie 2 (of eigenlijk versie 1.1) wel dus. In een aantal screenshots, verderop in mijn artikel, laat je je zien hoe het werkt.

Alleen down te loaden op deze site

Deze plugin kan je downloaden van deze site. Misschien vraag je je af, waarom ik hem niet opneem in de WordPress Plugin Repository. Twee belangrijke redenen. Ten eerste, ik heb deze plugin voor mijzelf gemaakt. Iedereen die denkt hem te kunnen gebruiken, mag hem gebruiken -het is Open Source- maar ik heb de plugin bijvoorbeeld nog niet ‘Vertaal klaar’ gemaakt. Een hoop werk om niets, omdat ik het nu niet in andere talen nodig heb. Hem ik hem ooit in het Engels nodig, dan is dat vroeg genoeg.

En een tweede reden is, dat je een plugin in de repository geacht wordt te onderhouden. Ik heb vroeger andere plugins in de WordPress repository gehad, en ik kan je één ding vertellen. Een gratis plugin onderhouden is ondankbaar werk. Dus heb je hem nodig, dan kan je hier de plugin geheel gratis en voor niets downloaden, en wanneer je een vraag hebt, of een idee voor verbetering, dan is het misschien zelfs zo, dat ik je vraag beantwoord. Maar het is een is een plugin die uitgebracht is onder de TIOLI licentie, ‘Take It Or Leave It’.

Wat ik in ieder geval wel zal doen… ooit

Als ik me een keer enorm verveel, ben ik wel van plan om de plugin te ‘herschrijven’ met Engels als basistaal, en Nederlandtalige vertaalbestanden. Maar voorlopig denk ik niet mij erg te vervelen. Wat ik dan mogelijk ook zal doen is het woordje ‘binnenkort’ instelbaar te maken. Maar voorlopig niet.

De instelling

Aan deze plugin hoeft er niet veel ingesteld te worden. Of eigenlijk, wanneer je met een verlooptermijn van 1 uur voor de transients akkoord gaat, hoef je helemaal niets in te stellen. Wil je dat toch doen, ga dan naar ‘Instellingen → Upcoming Posts’ en je krijgt onderstaand formulier te zien. Dat behoeft geen nadere uitleg meer.

De transient instellingen zijn voor iedere instantie van de shortcode of de widget van toepassing.

Transients instellen voor toekomstige blogposts.

De shortcode

Laten we beginnen met de shortcode. Wanneer je Elementor gebruikt, is er een mooie Elementor widget beschikbaar, maar wanneer je een andere pagebuilder gebruikt, of helemaal niets, dan zal je het moeten doen met de shortcode.

Shortcodes weergeven in een blogpost is een ramp. Omdat bestaande shortcodes door WordPress worden uitgevoerd. Nu zijn er enkele mogelijkheden om deze ‘uitvoering’ te onderdrukken, maar in de praktijk blijkt dat met nieuwe WordPress versies niet altijd meer te werken…

Om het mijzelf gemakkelijk te maken, plaats ik een spatie tussen de shortcode zelf en de vierkante haak waarmee het begint. Gebruik je de code in de praktijk, moet je die spatie weghalen.

De shortcode zelf is dus [ wxp_upcoming_posts]

De code kan een aantal parameters meekrijgen, te weten:

ParameterFunctieDefault waarde
post_typeGeeft aan wat het ‘post type’ type moet zijn. Kan dus bijvoorbeeld ook een product in een webshop zijn.‘post’
future_limitHet maximum aantal toekomstige blogposts wat getoond mag worden.10
draft_limitHet maximum aantal draft blogposts wat getoond mag worden.
show_future‘yes’ om de future posts te tonen, ‘no’ om ze niet te tonen.‘yes’
show_draft‘yes’ om de draft posts te tonen, ‘no’ om ze niet te tonen.‘yes’
empty_textDe tekst die je wilt tonen, wanneer er geen posts getoond kunnen worden. geen tekst
list_styleTwee geldige waarden, ‘bulleted’ en ‘plain’. Let op de enkele ‘t’ bij ‘bulleted’. (ik heb zelf de neiging het steeds fout te schrijven). Iedere andere waarde wordt genegeerd. ‘plain’
bullet_iconToegestane waarden zijn ‘dot’, ‘circle’, ‘square’, ‘check’ en ‘chevron’. Iedere andere waarde wordt genegeerd.‘dot’

Met betrekking tot ‘bullet_icon’

De Elementor widget heeft meer mogelijkheden dan de shortcode. Met de Elementor widget kan je in principe iedere ‘ingebouwde’ icon van Elementor uitkiezen met de icon picker.

De Elementor Widget

De widget heet ‘Binnenkort te lezen’ en door deze naam in te tikken in de zoekbalk van het palet links kan je hem vinden.

De instelmogelijkheden van de widget zijn beperkt. Voor wat betreft de inhoud heb je dezelfde vormgevingsmogelijkheden al voor de shortcode.

Elementor widget voor blogposts in de toekomst.

Standaard krijg je de lijst zonder bullets, maar kies je voor de bullets, dan wordt er een extra veld zichtbaar met het icoon wat je kan kiezen.

Elementor widget blogposts in de toekomst

Je kan hier dus ieder gewenst icoon wat in Elementor is ingebouwd kiezen. Wanneer je naar de ‘Stijl’ tab gaat, dan zal je merken, dat je ook hier meer kan, dan in de shortcodes. Je kan zelf fonts en de kleuren instellen.

De stijl voor de lijst instellen

En terwijl ik zo kijk naar de mogelijkheden van de stijl instellingen bedenk ik me, dat er misschien nog een paar andere zaken zijn, die ik in de toekomst toe kan voegen.

De ‘gevorderde’ tab behandel ik verder niet, dat is de standaard gevorderde tab van Elementor zelf.

Laten we nog eens kijken naar het eindresultaat (ditmaal met bullets) :

toekomst | Een plugin die naar de toekomst wijst?

De oranje rand is gemaakt met de ‘rand’ opties van het gevorderde panel. Zoals je ziet, kan je de typografie en de ‘labels’ (de datum of het woordje ‘binnenkort’) zelf aanpassen.

Mogelijke aanpassingen in de toekomst zouden kunnen zijn, dat voor het label ook de achtergrond kleur, rand en rondingen aan te passen zijn, waardoor je echt een ‘label’ effect zou krijgen, dat je zou kunnen kiezen voor een ‘datum datum’ of een ‘menselijk leesbare datum’ (over x dagen, weken, maanden, jaren). Wie weet.

De plugin downloaden

Je kan de plugin hier op deze pagina downloaden. De bovenste versie is altijd de nieuwste, de overige versies zijn alleen leuk voor ontwikkelaars, die de ‘groei’ van de plugin willen bekijken. (En ja, als ik een keer tijd heb om het netjes in te richten, en in ieder geval de plugin te vertalen komt dit in GitHub).

Wil je weten, wanneer er een nieuwe versie van de plugin is, schrijf je dan in op de nieuwsbrief op het formulier onder aan deze pagina.

Terugkoppeling

Wanneer je de plugin gebruikt en er eigenlijk best tevreden over bent, of je gebruikt hem en je denkt dat er best nog iets bij kan qua functionaliteiten, voel je niet bezwaard dit in de commentaren hieronder aan te geven. Houd echter wel met één heel belangrijke zaak rekening: De plugin is door en voor mijzelf gemaakt, en ik stel hem alleen beschikbaar in de hoop dat iemand anders hier ook iets mee kan. Ik voel geen enkele verplichting de plugin aan te passen met functies die ik zelf niet nodig heb.

Veel plezier ermee.

Binnenkort

Natuurlijk schrijf ik niet iedere week, ik werk vooruit. En hieronder zie je alvast een aantal artikelen die je binnenkort mag verwachten. Mis deze niet! Schrijf je onder aan de pagina in voor de WordXPression nieuwsbrief, zodat jij altijd op de hoogte blijft. De blogartikelen met een tijdsaanduiding, die komen volgens planning, de artikelen met 'binnenkort' er achter zijn nog bezig geschreven te worden.

Nog niet uitgelezen?

Vind je dit artikel interessant? Mooi! Want ik heb nog veel meer te bieden. Op deze site vind je letterlijke honderden artikelen over WordPress, marketing, e-commers, e-learning en nog veel meer onderwerpen. Op zoek naar meer informatie? Kies één van de trefwoorden hieronder of tik een zoekopdracht in.

Meest populaire blogposts
Wees eens aardig en deel dit met je vrienden
Enkele trefwoorden om vergelijkbare posts te vinden:

Word je website de baas. Neem vandaag nog contact op!

Contact Informatie

Helaas is telefoonspam een serieus probleem geworden. Omdat ik dagelijks tientallen ‘spam’ en ‘scam’ telefoontjes ontving, heb ik mijn telefoonnummer van de site verwijderd. 

Wanneer je echter het formulier hiernaast invult, en aangeeft dat je per telefoon contact op wilt nemen, maak ik graag een belafspraak met je op een moment wat ons beiden past. En krijg je gewoon het telefoonnummer van WordXPression, zodat je ieder moment kan bellen.

WordXPression 

Aardoliestraat 14-I 7553GT Hengelo

KVK : 75580152 

Stuur een bericht

Mocht je interesse hebben in een nieuwe WordPress of WooCommerce website, verzoek ik je niet onderstaand formulier in te vullen, maar gebruik te maken van het intake/offerte formulier

Deze post rapporteren

Wanneer deze post niet meer relevant is of verouderde informatie bevat, zou ik het op prijs stellen wanneer je dit door wilt geven., zodat ik dit eventueel bij kan werken. De persoonlijke gegevens die je hieronder invult worden alleen gebruikt om de mail te versturen en zal niet voor marketingdoeleinden worden gebruikt.