Maak je eigen extra velden (Custom fields)

Met WordPress is het mogelijk om zogeheten meta-data aan een pagina of bericht toe te voegen. Om dit te doen is er de optie om een extra veld aan te maken, wanneer je een bericht of pagina bewerkt (zie je deze optie niet, kijk dan bij “Scherminstellingen” of je een vinkje hebt staan bij “Extra velden”). Zo’n extra veld kan allerlei informatie bevatten, denk bijvoorbeeld aan een link naar een speciale thumbnail afbeelding of extra informatie over de auteur. In dit artikel wordt aan je uitgelegd hoe je zelf informatie in een extra veld plaatst en deze vervolgens kunt gebruiken.

Wat is een extra veld (custom field) precies
Allereerst uitleg wat een extra veld precies inhoudt. In principe is het niet anders dan data die wordt opgeslagen als een key/value pair. Hiermee wordt bedoeld dat bij de naam (key) van het extra veld een bepaalde waarde (value) hoort. Hierbij is het mogelijk om de namen (keys) vaker in hetzelfde bericht te gebruiken. Stel dat je twee lievelingskleuren hebt, dan zou je beiden als extra informatie kunnen opslaan onder dezelfde naam “lievelingskleur”.

Gebruik van custom fields
De extra velden zijn makkelijk te gebruiken. Stel dat we het voorbeeld gebruiken van zojuist over de lievelingskleuren. Dit kun je als volgt in een extra veld opgeven:

Klik vervolgens op “Extra veld toevoegen” om de waarden op te slaan. Als je in het vervolg nog een keer een lievelingskleur wilt toevoegen, dan zal je zien dat deze optie nu beschikbaar is in het dropdown menu. Zorg er bij het toevoegen van een extra veld voor dat je altijd op “Extra veld toevoegen” klikt, anders wordt het veld niet opgeslagen.

Je kunt zoveel nieuwe namen toeven als je zelf wilt. Iedere keer dat je dit doet, wordt hij toegevoegd aan de huidige opties in het dropdown menu. Je hoeft dus altijd maar één keer een nieuwe naam in te typen en in het vervolg zal hij onthouden worden.

Meer dan dit hoef je niet te doen om een extra veld aan een bericht toe te voegen.

Custom field informatie weergeven
Wanneer je informatie in een extra veld hebt geplaats, wil je dit natuurlijk ook weergeven. Hiervoor kun je de functie the_meta() gebruiken. Deze functie dient wel in de loop geplaatst te worden waarin je berichten worden opgehaald. Het begin van deze ‘loop’ ziet er vaak als volgt uit:

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

Standaard zorgt de functie ervoor dat je extra velden in een ongeordende lijst worden weergegeven. Deze lijst bevat de klasse “post-meta” en voor de namen van de extra velden wordt een span klasse genaamd “post-meta-key” gebruikt. Je kunt in je style.css bestand deze twee klassen naar wensen opmaken.

Onderstaand een voorbeeld van de meta code en de uitkomst in source code:

Meta code:
<?php the_meta(); ?>
Source code:
<ul class='post-meta'>
<li><span class='post-meta-key'>Lievelinkskleur:</span> Groen</li>
</ul>

Natuurlijk zijn er voor WordPress ook Custom field plugins waarmee je je extra velden kunt beheren en opmaken.

Specifieke custom fields opvragen
In het vorige kopje werd uitgelegd hoe je de informatie uit al je extra velden kunt weergeven in een standaard lijst, maar het is ook mogelijk om specifieke velden op te vragen. Hiervoor kun je gebruik maken van de get_post_meta($post_id, $key, $single) functie, waarin:

  • $post_id het ID van het bericht is waarvan je het extra veld wilt opvragen. Wanneer je over de $post variabele beschikt, kun je $post->ID gebruiken om voor elk bericht het extra veld op te vragen. Om in de loop het huidige ID van je bericht op te vragen, kun je get_the_ID() gebruiken.
  • $key de naam is van het extra veld dat je wilt opvragen.
  • $single true of false is. True houdt in dat je maar één resultaat terugkrijgt (als string) en false geeft een array terug. Als je hier niks invult, staat $single standaard op false ingesteld.

Er zijn ook nog een aantal andere functies die je kunt gebruiken om extra velden op te vragen. Deze dienen allemaal binnen de loop gebruikt te worden:

get_post_custom()
Geeft alle extra velden terug voor het huidige bericht (zelf idee als the_meta()).
get_post_custom_keys()
Geeft alle namen van de extra velden terug voor het huidige bericht.
get_post_custom_values($key)
Geeft de waarden van de extra velden met de naam $key voor het huidige bericht.

Michel Kraaijeveld is oprichter van WPsitemaken. Hij is ervan overtuigd dat het voor iedereen mogelijk moet zijn om een eigen website te maken, zonder lastige handleidingen door te hoeven nemen. Zelf is hij al 6 jaar actief met WordPress en probeert zijn kennis op een simpele manier over te brengen aan anderen.

Laat een reactie achter