Advanced Custom Fields in een template

Vanaf dat je de ACF plugin hebt geïnstalleerd en je de velden aan je (custom) post hebt toegevoegd moet je de waardes uit de velden uiteraard nog gaan opnemen in je template.

the_field()

De functie the_field() is ideaal om eenvoudige waardes te tonen. Een tekst, een getal, … .

Wanneer je bijvoorbeeld een custom post type “Video” hebt met daar een specifiek veld “regiseur” en “duurtijd” dan zou de code er als volgt kunnen uitzien.

single-video.php

<h1><?php the_title() ?></h1>
<ul>
    <li>Regisseur: <?php the_field('regisseur'); ?></li>
    <li>duurtijd: <?php the_field('duurtijd'); ?></li>
</ul>

get_field()

Eenvoudige waarde

De functie get_field() geeft de ruwe waarde van het veld terug. Bij een eenvoudige waarde is dat gewoon de waarde. De werkwijze is dat dezelfde als bij the_field() met dat verschil dat je wel echo moet gebruiken.

Uitgebreide waarde

Bij een uitgebreide waarde geeft hij de functie get_field() verschillende elementen van de waarde terug via een array.

Het veld type url bijvoorbeeld heeft als waarde een URL en een linktekst.

De get_field() functie retourneert dan een array met die twee elementen die je dan kan gaan gebruiken in de template.

single-video.php

<h1><?php the_title() ?></h1>
<ul>
    <li>Regisseur: <?php echo get_field('regisseur'); ?></li>
    <li>duurtijd: <?php echo get_field('duurtijd'); ?></li>
    <?php 
    $link_info = get_field('link'); 
    ?>
    <li>Link: 
        <a href="<?php echo $link_info['url']; ?>">
        <?php echo $link_info['title']; ?>
        </a>
    </li>
</ul>    

De array elementen kan je trouwens op deze manier te zien krijgen:

<pre> 
<?php
print_r($link_info);
?>
</pre>