Events met WordPress

In mijn bericht over “Events in WordPress” sprak ik over het handmatig toevoegen van events aan/met WordPress. Er zijn verschillende plugins, zoals ik dus beschreef, waarmee je events aan je WordPress blog kan toevoegen. Voor mij was het zaak om juist een website die alleen maar bestaat uit events vorm te geven. Een belangrijk argument voor het gebruik van WordPress hierbij is dat de klant gebruik wil maken van de RSS-feeds. Zo kan de klant maar natuurlijk ook anderen gebruik maken van de feeds die er zijn per categorie. Nu is het voor de gebruiker mogelijk om op een andere site de events weer te geven.

Remkus schreef in “Events in de toekomst toch normaal in de loop” over een plugin die er voor zorgt dat berichten die je een datum in de toekomst geeft via je publicatiesysteem, toch direct geplaatst zal worden. Nadeel hiervan is dat als je een bericht hebt die je echt in de toekomst pas wil laten verschijnen de plugin eerst uitgezet moet worden. Voor mij een reden om juist handmatig en in de template code te plaatsen.
Ik zal hier weer geven wat ik nu precies heb gedaan.In “Events in WordPress” gaf ik aan dat ik gebruik ging maken van “How to make a WordPress Events List” dat gepubliceerd is bij Pro Blog Design.
Eerst heb ik een opzet gemaakt van het design. Dit doe ik altijd in een index.php en een style.css bestand. Als deze klopt knip ik het geheel over in een WordPress thema. Dan maak ik gebruik van de pagina’s die ik nodig denk te hebben. Deze keer gebruik ik een header, footer, index en style bestand. Meer heb ik niet nodig. Na het ontwerp proces en het knip en plak werk blijkt dat het thema werkt. Dan komt de volgende stap.

Ik wil graag dat de events op datum verschijnen dat ze gaan gebeuren. Het gevaar van het gebruik van de berichten in WordPress is dat  de events op datum van publiceren komen. Daarom kwam “How to make a WordPress Events List” goed van pas.

Je ziet het Extra Veld  uit het WordPress CMSIn je Extra Velden (=Custom Field) veld onder een nieuw bericht klik je op  Nieuwe Toevoegen. Nu type je onder naam de naam van je Extra Veld. In de post die ik gebruik hebben ze gekozen voor date, ik heb er datum van gemaakt. Daarnaast heb ik de datum geschreven zoals zij het ook beschrijven. Dus met de maand eerst, daarna dag en jaar. Ik heb geprobeerd het met de dag eerst en daarna maand, maar dat lukte niet. Ondanks dat ik bij de instellingen als datum formaat dd/mm/jjjj heb ingesteld. Nadat je dit heb ingevuld en ook de tekst van je post hebt aangemaakt kan je het bericht publiceren.

Je hebt nu nog weinig anders gedaan dan anders. Maar doordat je een datum hebt ingegeven in het Extra Veld “datum” kan je daarmee spelen zodat je de berichten goed op volgorde krijgt. Hiervoor heb ik de volgende code gedeeltelijk gekopieerd vanaf “How to make a WordPress Events List” en boven de WordPress Loop in index.php gezet:

div id="content">

<?php // Get today's date in the right format

<code>$todaysDate = date('m/d/Y H:i:s'); ?>

<?php query_posts('meta_key=datum&amp;meta_compare=&gt;=&amp;meta_value=' . $todaysDate . '&amp;orderby=meta_value&amp;order=ASC'); ?>

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

In het eerste stukje php code word een waarde gegeven aan todaysDate. Deze gebruik je in het 2de php gedeelte om er voor te zorgen dat de datum van vandaag vergeleken wordt met de datum die je in je Extra Veld hebt gezet. Is de datum in je extra veld geweest dan laat WordPress het bericht niet meer zien.
Een uitleg van het 2de php gedeelte:

  • query_post: hiermee kan je zeggen waaraan berichten die je wilt plaatsen moeten voldoen. Je kan er ook berichten mee uitsluiten.
  • meta_key: hier komt de naam die je hebt je gegeven aan je extra veld.
  • meta_compare: dit zorgt voor het vergelijken van de gegevens.
  • orderby=meta_value:  Hiermee wordt gekeken welke dag het vandaag is, deze is in het gedeelte er boven benoemd.
  • order=ASC: ASC staat voor ascending, wat betekent dat de berichten op de normale volgorde worden gezet. Deze volgorde is die van de datum waarop het event plaats vindt. Het event dat het eerste is staat boven aan. De laatste dus altijd onderaan.

Hebben jullie al eens gewerkt met events of evenementen of een kalender in WordPress? En hoe pakte je dat aan?

Gravity Forms Plugin for WordPress

Reacties

  1. Ik maakt gebruik vd amr-ical-events-list plugin (http://wordpress.org/extend/plugins/amr-ical-events-list/). Kan je gewoon iedere ical feed in stoppen en helemaal stijlen zoals jij dat wilt. Voor wat ik er mee wilde doen, werkte dit prima, gewoon events invoeren op Google Calendar.

  2. Anne Jan zegt:

    Toevallig ook een WordPress website waarbij de klant events wilde in een widget.
    Het kan inderdaad niet anders, zoals je aangeeft, dat de gebruiker in het customfield de datum in de volgende volgorde moet invoeren: m/d/y. Omdat de eerste waarde vergeleken wordt werkt het maanden wel maar met dagen niet.

    Je kunt bij het weergeven natuurlijk wel even de maand en dag omdraaien zodat het in ieder geval voor de bezoeker herkenbaar overkomt. :)


    $value = get_post_custom_values("Datum");
    $var = $value[0];
    $var2 = explode("/",$var);
    echo ''.$var2[1].'/'.$var2[0].'/'.$var2[2].'';

  3. Jan Egbert zegt:

    Een handige plugin om een extra datum veld mee toe te voegen is WordPress Date Field Plugin . Probleem is wel dat deze plugin nog geen rekening houdt met custom post types.

Laat wat van je horen

*