Advanced Custom Field : Récupération des données

Dans un article précédent, je vous avais fait la présentation globale du plugin ACF. Vous savez donc créer vos champs personnalisés via le Back Office, mais les données sauvegardées dans ces champs ne sont pas automatiquement affichées en Front Office. Heureusement le plugin met à disposition des fonctions qui vous permettront d’interagir avec vos champs.

Dans cet article, je vais vous présenter quelques fonctions très utiles et surtout une méthode simple pour avoir accès rapidement à vos données ACF.

Les fonctions importantes :

Prenons le cas suivant, j’ai créé le groupe de champs suivant composé d’un champ « numéro de téléphone » et de deux blocs à savoir un « bloc WYSIWYG » et un « bloc Vidéo ».

J’ai ensuite créé la page avec les données suivantes :

Lorsque je souhaite voir le résultat en Front j’obtiens ceci :

Une page vide avec comme simple donnée le titre de celle-ci.

Il existe plusieurs fonctions bien documentées sur le site du plugin qui permettent d’afficher vos données, mais les plus utilisées sont les suivantes :

the_field($field_name, $post_id);

La fonction the_field va simplement afficher le nom du champ ($field_name) que vous lui aurez passé en paramètre. Le parmètre $post_id est facultatif, lorsqu’il n’est pas renseigné la fonction prendra l’id de la page en cours par défaut. C’est la fonction la plus simple d’ACF et qui vous permettra d’afficher une donnée en une ligne de code.

Dans notre cas, si nous souhaitons afficher le numéro de téléphone, il suffira simplement d’ajouter le bout de code suivant <?php the_field(‘numero_de_telephone’) ; ?>  dans le template de page pour obtenir le résultat suivant :

L’inconvénient de cette fonction, c’est qu’on ne peut pas récupérer la donnée côté PHP, heureusement la fonction suivante corrige ce manque.

La seconde fonction très utilisée est :

$field = get_field($field_name, $post_id, $format_value);.

Elle permet donc à la différence de la première fonction de récupérer la donnée dans une variable pour effectuer des actions dessus. Dans notre cas, nous pourrions par exemple l’utiliser pour vérifier le format du numéro de téléphone avant de l’afficher.

Enfin une dernière fonction qui je trouve est la plus importante est la fonction :

$fields = get_fields([$post_id]);

Cette fonction permet de récupérer toutes les données de la page courante ou de la page que l’on veut en précisant l’id de celle-ci comme paramètre de la fonction.

Avec cette fonction vous aurez à disposition tous les champs créés via ACF, ce qui est très pratique quand vous en avez un très grand nombre.

Autre point, il est bon de savoir qu’en fonction du champ récupéré et surtout son type, la variable de stockage peut être un string ou un array qu’il faudra parcourir pour récupérer la donnée, donc il ne faut surtout pas hésiter à bien vérifier la structure de la donnée récupéré pour savoir comment l’afficher.

Bonus :

Pour terminer cet article, je vais vous montrer une petite astuce assez simple qui vous permettra de récupérer des variables PHP portant directement le nom de vos champs créés via ACF.

<?php $fields = get_fields(); extract( $fields ); ?>

Dans notre cas, en utilisant cette astuce, si nous avons créé un champ « numero_de_telephone » avec ACF, la variable PHP extraite sera :  « $numero_de_telephone ».

C’est simple, très efficace et ça permet d’avoir à disposition rapidement vos données et d’avoir les mêmes noms entre ACF et PHP, ce qui évite pas mal d’erreurs.

En complément documentation ACF

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.