Formation « Développer un thème WordPress sur mesure »

Advanced Custom fields : Créer son premier groupe de champs

Lecture : 9 minutes • 54

ACF est l’outil incontournable pour ajouter des champs additionnels à vos publications et ainsi permettre au rédacteur de saisir plus facilement les différentes données d’une page. Dans ce cours on va voir comment créer notre premier groupe de champs, l’assigner à un contenu et afficher les données sur notre page.

Dans le cours précédent, on a vu les bienfaits d’ACF qui nous propose d’ajouter des champs additionnels bien plus sexy dans notre interface de rédaction. On va maintenant mettre en place des champs ACF, et pour cela on va reprendre le même exemple que pour le cours sur les champs personnalisés, à savoir un test de jeux vidéo.

Mais on va voir que c’est bien plus propre et efficace avec ACF ! Alors sans plus attendre, jetons-nous dans le bain !

Comment fonctionne ACF ?

Dans notre cas, on souhaite ajouter des champs à nos tests de jeux vidéo : la note globale, les plus, les moins, mais également la pochette du jeu, son prix et sa date de sortie !

Sur le site, ça donnera ça :

Un bloc critique permet de faire la synthèse du test d'un jeu
La pochette, les plus, les moins et la note viennent conclure le test en bas de page

Voici comment on procède habituellement avec ACF :

  1. Tout d’abord on créé un groupe de champs et on y ajoute nos champs (contenus, images…) ;
  2. On assigne ensuite ce groupe à une page, des articles, une catégorie en particulier…
  3. Et enfin on modifie le template concerné via PHP pour afficher ces champs.

Appliqué à notre exemple, cela donne :

  1. On va créer un groupe contenant nos champs note, plus, moins, pochette, date de sortie et prix ;
  2. On va ensuite assigner ce groupe aux articles de la catégorie Jeux vidéo seulement ;
  3. Puis on va afficher ces champs dans notre single.php ;

Le rédacteur (nous pour l’instant) n’aura plus qu’à rédiger son contenu depuis son interface d’administration !

On va maintenant installer ACF à partir du répertoire des extensions afin de pouvoir l’utiliser.

Installer ACF

Rendez-vous dans votre interface d’administration de WordPress puis Extensions > Ajouter. Recherchez Advanced Custom Fields (et pas juste ACF, sinon il ne trouvera pas) et installez-la, puis activez-la !

Advanced Custom Fields (ACF)

Advanced Custom Fields (ACF)

Advanced Custom Fields (ACF) helps you easily customize WordPress with powerful, professional and intuitive fields. Proudly powering over 2 million we …

Par WP Engine

Cette version est gratuite et propose déjà pas mal de fonctionnalités. Mais il existe aussi une version Pro qui vous permettra d’aller encore plus loin avec encore plus de champs et d’options ! Il vous en coutera 49$ par an pour un site ou 249$ pour un nombre de sites illimité (idéal pour les agences).

Découvrir ACF Pro

Pour le moment et pour bon nombre de projets, la version gratuite suffira amplement !

Si vous avez opté pour la version Pro, vous allez télécharger l’archive de l’extension, la décompresser et placer le dossier ACF manuellement dans le wp-content/plugins/ de votre site. Ensuite, allez dans votre interface d’administration, Extensions > Extensions installées, puis cliquez sur Activer sous Advanced Custom Fields.

Profitez-en pour aller insérer votre clé de licence dans ACF > Mises à jour afin d’activer les mises à jour.

Le saviez-vous ?

La version française d’ACF Pro est traduite par mes soins. Aussi, n’hésitez pas à me faire signe si vous trouvez une faute, mauvaise correction ou chaine manquante !

Déclarer un groupe de champs

Une fois ACF activé, vous devriez voir une nouvelle entrée ACF (ou Custom Fields en anglais) en bas du menu latéral de WordPress :

Le menu ACF

Cliquez dessus puis sélectionnez Ajouter. Vous tomberez sur cette interface :

L'interface de création de champs ACF.
C’est ici que vous allez définir votre groupe et les champs qu’il va contenir

On va commencer par donner un nom à notre groupe de champ, je vais l’appeler Tests de jeux.

Déclarer les champs

Ensuite, on va ajouter notre premier champ. Pour cela cliquez sur le bouton bleu + Ajouter nous permettant de définir un nouveau champ.

La note

On va lui donner un titre, par exemple Note, et définir le type de champ sur Nombre. Le Nom du champ est défini automatiquement à partir du titre. C’est l’identifiant qui doit être unique, et qu’on utilisera dans le template pour afficher la valeur. Autrement dit, c’est un Slug.

Ils y a plusieurs options dessous, mais pour le moment celles qui vont nous intéresser c’est :

  • Suffixe : mettez /10 afin d’ajouter une indication sur le champ pour le rédacteur ;
  • Valeur minimale : 0 (je ne vous fait pas un dessin) ;
  • Valeur maximale : 10 (ou 20, comme vous voulez) ;

On va procéder de la même manière pour les autres champs :

Les plus

  • Titre : Les plus ;
  • Nom : les_plus ;
  • Type de champ : Éditeur WYSIWYG ;
  • Barre d’outils : Basic ;
  • Boutons d’ajout de médias : non.

Les moins

  • Titre : Les moins ;
  • Nom : les_moins ;
  • Type de champ : Éditeur WYSIWYG ;
  • Barre d’outils : Basic ;
  • Boutons d’ajout de médias : non.

Date de sortie

  • Titre : Date de sortie ;
  • Nom : date_de_sortie ;
  • Type de champ : Date.

Prix

  • Titre : Prix ;
  • Nom : prix ;
  • Type de champ : Nombre.
  • Suffixe: €.
  • Valeur minimale : 0.

Pochette

  • Titre : Pochette ;
  • Nom : pochette ;
  • Type de champ : Image ;
  • Format dans le modèle : Données de l’image (array) ;
  • Taille de prévisualisation : Moyen.

C’est grâce à ce genre de champs comme les images qu’ACF va prendre tout son intérêt !

Si vous n’avez pas envie de créer les champs à la main, vous pouvez télécharger mon export JSON :

Télécharger le groupe en JSON

Il vous suffit ensuite d’aller dans ACF > Outils > Importer les groupes de champs.

Vous devriez maintenant avoir tous ces champs :

La liste des champs que l'on vient de créer
Les champs que l’on vient de créer, qui composent notre groupe Test de jeux

Vous pourrez à tout moment venir modifier ou ajouter des paramètres à ce groupe. Pour l’instant, on va laisser comme ça.

Un champ ou une taxonomie ?

D’ailleurs, on pourrait ajouter un champ Plateforme, où l’on pourrait indiquer si le jeu sort sur XBox, Playstation, PC

Mais en fait là, ce serait plutôt une façon de « classer » le jeu. Même constat si on voulait définir le type de jeu : Action, Course, Plateau, Multi

Du coup, dans ces deux cas, créer un champ n’est pas la meilleure approche. À la place, il faudrait plutôt créer une taxonomie ! Et ça tombe bien, car maintenant vous savez faire !

Si c’est pour faire du classement, la Taxonomie sera plus indiquée que les champs ACF

Assigner le groupe de champs à des publications

On a créé un groupe de champs, mais il faut maintenant indiquer à ACF où et quand il doit apparaitre.

Nous ce que l’on veut, c’est qu’il apparaisse dans les articles de la catégorie Jeux vidéo seulement. (Vérifiez que vous avez bien une telle catégorie créée dans votre site).

Sous l’interface d’ajout de champs que l’on vient de manipuler, vous trouverez une autre Metabox nommée Assigner ce groupe de champs.

Assigner un groupe de champ a des publications
C’est dans ce deuxième bloc que l’on va dire qu’on veut voir nos champs apparaitre dans les articles

Le but ici est d’indiquer que :

  • On veut montrer ces champs lorsque le type de publication est Article ;
  • ET que la catégorie de l’article est Jeux vidéo ;

Si votre blog est entièrement dédié aux jeux vidéo, alors la deuxième condition n’est même pas nécessaire. En général, on se cantonne à une seule condition, ce qui suffit largement.

Il existe plein d’autres conditions, par exemple afficher le groupe lorsque :

  • Le type de publication est une page ;
  • Le modèle de la page est Service ;
  • Que la taxonomie Type de projet est Photo

Bref, avec ce système vous allez pouvoir couvrir un bon nombre de cas.

D’ailleurs vous pouvez tout à fait créer plusieurs groupes de champs et les assigner à une même publication, rien ne l’interdit et ça peut s’avérer pratique pour aérer vos champs ou les regrouper par utilité.

Bien, notre groupe est prêt, alors pensez à l’enregistrer en cliquant sur Publier ou Mettre à jour à droite, et on peut passer à la suite.

Aparté: Comment ACF enregistre les données des groupes ?

Tiens d’ailleurs, vous savez comment sont enregistrées les données de ces groupes de champs dans WordPress ? Regardez l’URL de la page : on y retrouve post_type ! Eh oui : Les groupes de champs ACF sont enregistrés dans un type de publication personnalisé non public ! Dans le cours dédié aux CPT je vous avais dit que certaines extensions les utilisaient parfois pour enregistrer des données. C’est le cas d’ACF !

Si vous retournez dans ACF > Groupes de champs, vous verrez votre premier groupe apparaitre. À terme, tous les groupes seront listés de cette manière :

La liste des groupes de champs dans ACF.
L’interface d’ACF affichant les groupes de champs disponibles

On y retrouve plusieurs informations utiles : la description du groupe, son identifiant unique, son emplacement sur le site et le nombre de champs qu’il contient.

Saisie du contenu

On va maintenant se rendre dans Articles > Ajouter pour créer un nouveau test de Jeux vidéo. Pour l’instant on ne voit pas nos champs, car il faut d’abord sélectionner la catégorie Jeux vidéo. Ils devraient ensuite apparaitre automatiquement. Si ce n’est pas le cas, enregistrez votre article et rechargez la page.

Vos champs apparaissent après le contenu :

Les champs ACF apparaissent en dessous l'éditeur visuel
Nos champs apparaissent bien dans notre article, il n’y a plus qu’à les remplir

Plutôt sympa non pour saisir le contenu ? Pas besoin de réfléchir, il suffit de remplir les cases ! L’éditeur visuel WYSIWYG me permet d’accéder aux options de mise en forme du texte, dont la liste à puces.

J’ai joué sur quelques paramètres pour améliorer la mise en page des champs en les disposant les uns à côté des autres grâce à un système de colonnes. Dans votre cas, ils seront simplement listés les uns sous les autres. On verra comment rendre cela plus joli un peu plus tard !

Afficher les champs dans le template

Dernière étape : afficher les valeurs de nos champs dans notre article !

Pour cela ACF propose une fonction pour récupérer et afficher le contenu des champs dans votre template :

PHP

C’est la même logique qu’avec les Templates Tags natifs de WordPress : une fonction the_ permet d’afficher directement le résultat, et une fonction get_ pour récupérer la valeur.

En fait la fonction the_field utilise la fonction native get_post_meta que l’on avait pu voir dans le cours sur les champs personnalisés. On pourrait d’ailleurs utiliser cette dernière fonction mais celle d’ACF simplifie un peu les choses.

Aparté: Le cas des thèmes premium

Si vous utilisez un thème premium, et pas un thème fait sur mesure, il va falloir générer un thème enfant. Je vous montre comment créer un thème enfant et pourquoi dans un cours dédié.

Mis en application avec mes champs dans la page, ça donne ça :

PHP
single.php

Pour commencer, j’ai utilisé le Conditional Tag (ou marqueur conditionnel) has_category('jeux-video') afin de vérifier que la catégorie de l’article est bien Jeux vidéo, sinon inutile d’afficher mon bloc avec mes champs. Cela n’est utile que dans ce cas précis car je souhaite n’afficher ma critique que dans cette catégorie.

Attention

Ne confondez pas avec is_category() qui permet de tester si une page archive affiche actuellement la liste des publications d’une catégorie.

Ensuite, j’utilise simplement les fonctions the_field là où je souhaite afficher les valeurs de mes champs ACF. Pensez bien à indiquer en paramètre le slug de ces champs, et non pas leur titre.

Plutôt facile pour le moment non ?

Le cas particulier de l’image

Pour l’image, c’est un peu différent : ACF ne renvoie pas la balise image, ni même juste l’URL de celle-ci, mais un tableau contenant plusieurs données. Si je fais un var_dump de mon image j’obtiens :

ACF nous renvoie un tableau contenant de nombreuses données utiles sur l'image
Toutes les données de notre image sont là

C’est dû au fait que, lorsque l’on a défini notre champ ACF, on a demandé un tableau de données en format de sortie :

Les différents choix de données renvoyées par ACF pour l'image
Par défaut, ACF vous renvoie un tableau de données

On observe qu’ACF nous fournit pas mal d’informations sur l’image, comme son nom ou son titre. Mais ce qui va nous intéresser c’est le sous-tableau sizes qui contient toutes les tailles d’images intermédiaires que l’on a créées dans le cours sur les tailles d’images personnalisées.

On aurait pu également demander de ne recevoir que l’URL de l’image, ou encore simplement son ID. C’est d’ailleurs la solution que je vous conseillerai à terme.

En fait, recevoir directement l’URL est une mauvaise idée car vous n’aurez que celle de l’image originale, et si celle-ci fait plus de 2000px de large, on va avoir un souci de performances. C’est pour cela que l’on préfère récupérer l’une des tailles d’images intermédiaires.

Vous pouvez sinon récupérer l’ID de l’image. Dans ce cas quelques fonctions WordPress vont vous permettre de récupérer votre image :

PHP
single.php

On utilise la fonction native wp_get_attachment_image pour générer le code HTML de l’image. Le second paramètre permet d’indiquer quelle taille d’image on souhaite.

Si vous souhaitez en savoir plus sur la gestion des champs ACF, je vous invite à consulter la documentation officielle qui est extrêmement bien réalisée. Et on va détailler tout cela dès le prochain cours.

Et voici maintenant le résultat final :

L'affichage des champs dans le template
Avec un peu de CSS, on peut vite avoir quelque chose de sympathique

Pas mal du tout !

Maintenant que votre groupe est en place, vos rédacteurs n’ont plus qu’à saisir leur contenu dans les champs ACF.

Conseil

Dans cette situation les rédacteurs n’ont aucun contrôle sur le design. Ils peuvent simplement remplir du contenu donc aucun risque de tout casser, contrairement à un Page Builder.


Vous savez désormais utiliser ACF pour ajouter des champs à vos contenus ! Vous allez pouvoir aller extrêmement loin grâce à WordPress et ACF, c’est un peu comme si vous veniez de découvrir vos nouveaux super pouvoirs !

Sachez enfin qu’aujourd’hui, pour cet exemple concret, on aurait pu créer un bloc Gutenberg. Si ça vous intéresse, j’ai une formation pour vous !

Dans les prochains cours, on va voir plus en détails les champs proposés par ACF, ainsi que leurs particularités.

54

Questions, réponses et commentaires

  1. Alina

    Le 16 août 2019

    Merci beaucoup pour cet article enrichissant. J’ai une petite question concernant les champs. En faite j’ai une page excitante et je voudrais ajouter 2 champs via ACF. Sur le back office on les voit, par contre sur le front ils n’apparaissent pas. Qu’est-ce qu’il faut faire svp?

    1. Maxime BJ

      Le 16 août 2019

      La réponse se trouve dans les prochains cours. Ici on créé notre champ, et ensuite on va l’afficher dans notre template. Je te laisse prendre connaissance du cours suivant, tu devrais y voir plus clair !

  2. diarrisso

    Le 7 octobre 2019

    Bonjour

    jai un problem avec ACF pro , je viens de mettre en jour mais chez moi il s’affiche pas de categories link et groupe de button et ensuite j’arrive pas a faire de repetition et de flexible content aide moi !!!!, mon projet Traine. desole pour les fautes d’ortographe je suis sur un clavier Allemand .

    merci d’avance

    1. Maxime BJ

      Le 17 octobre 2019

      Il faudrait que tu vois directement avec leur support, mais avant ça essaie sur un site neuf pour voir si les problèmes sont là aussi. Il se peut que quelque chose fasse conflit dans ton installation

  3. Pascal Dubois

    Le 17 avril 2020

    Bonjour, merci pour cet article. Je viens d’essayer ACF (super plugin) pour rajouter des champs à des produits woocommerce. Par contre je ne sais pas ou insérer le code php pour récupérer mes valeurs de champs dans mes pages produits.

    1. Maxime BJ

      Le 17 avril 2020

      Je vous conseille du coup de prendre la formation par le début et voir notamment le cours sur le Template Hierarchy. Contrairement aux autres sites qui sont tournés en mode tuto, ici chaque cours utilise les concepts appris dans les précédents. Mais pour apporter tout de même une réponse courte il faut aller dans single-product.php. Si vous utilisez un thème télécharger, il faudra aussi un thème enfant (j’écris le cours la semaine prochaine)

  4. teyssier

    Le 1 juin 2020

    Merci beaucoup pour ton article !
    J’aimerais savoir comment tu as fait pour agencer pour tu as voulu tes colones dans le back office de ACF ?
    Merci,

    1. Maxime BJ

      Le 1 juin 2020

      C’est dans la version PRO d’ACF. On le voit plus tard dans la formation lorsque je parlerai des dispositions !

  5. chris gaillard

    Le 29 juin 2020

    Le type de champ : Éditeur WYSIWYG s’appelle désormais Éditeur de contenu

    1. Maxime BJ

      Le 29 juin 2020

      Merci je corrige (je suis sensé le savoir, c’est moi qui ai traduit).

  6. Franck

    Le 8 juillet 2020

    Bonjour, quand je colle le code dans function.php du child theme, j’ai un message d’erreur :

    “Vos modifications de code PHP ont été annulées en raison d’une erreur sur la ligne 25 du fichier wp-content/themes/pro-child/functions.php. Veuillez la corriger et réessayer d’enregistrer.

    syntax error, unexpected ‘<', expecting end of file"

    La ligne 25 correspond à la première ligne de votre code. les 24 premières correspondent à celles-ci :

    Qu'ai-je fais de travers ?

    1. Maxime BJ

      Le 13 octobre 2020

      Pensez à aller faire un tour dans le cours sur le Template Hierarchy pour connaitre le bon template. Mais en général si c’est un article, c’est dans single.php en effet. Après ça dépend du thème utilisé, si vous ne l’avez pas fait à la main.

    2. Maxime BJ

      Le 8 juillet 2020

      Quel éditeur de code utilises-tu ?

      1. Frank

        Le 10 juillet 2020

        J’ai collé le code à l’aide de dreamweaver.

        1. Maxime BJ

          Le 15 juillet 2020

          OK. Est-ce que tu es à l’aise avec le PHP déjà ? J’ai l’impression que tu as collé le code dans le functions.php, alors qu’il fallait le coller dans le template de la page. Pense également à ne pas mettre la balise < ?php si tu es déjà dans du PHP. L'erreur peut provenir de là.

          1. Franck

            Le 22 juillet 2020

            Absolument pas, je pensais que suivre ce tuto serait simple pour un néophyte en php (du code a coller et hop).
            J’ai collé le code dans l’éditeur de WordPress dans le single.php (celui qui correspond à la page des articles si je dis pas de bêtises), mais toujours sans succès.

  7. Julie Chaumard

    Le 26 septembre 2020

    Bonjour,
    Je vous remercie pour ces tutos très bien faits 😉
    Je voudrais créer un menu déroulant qui contient les titres des posts d’une certaines catégorie de posts.
    Par ex : dans une post type “Concerts”, avoir un menu déroulant avec les articles du post type “Artistes”.
    Est-ce possible avec ACF ?

    1. Maxime BJ

      Le 27 septembre 2020

      Salut Julie. Tu vas avoir plusieurs possibilités :
      – Soit faire une WP Query (on voit plus loin dans la formation) pour lister automatiquement les données (dans un ordre choisi : par exemple chronologique mais pas que)
      – Soit faire un menu standard que tu remplis à la main
      – Soit faire un champ relationnel dans ACF pour créer une sélection à la main et l’afficher dans une page en particulier

      Ça va vraiment dépendre du besoin en fait. Tu peux m’en dire plus si tu veux afin que je t’oriente sur le meilleur choix.

  8. Durel Frédéric

    Le 28 septembre 2020

    Bonjour, très bon tuto 🙂
    J’aimerai savoir comment récupérer un champ ACF sur une page connecté ( et en fonction de la personne connectée)
    Ex : une user meta age.
    J’imagine avec l’ID en plus, mais je n’arrive pas le faire apparaître sur mon template profil connecté de mon thème perso

    1. Maxime BJ

      Le 28 septembre 2020

      Salut, c’est justement au programme de la formation premium ACF !

  9. Jean-Baptiste R

    Le 28 novembre 2020

    Merci pour ce tuto ! Pour le moment, j’intègre facilement mes champs ACF grâce à Elementor. Mais il faut que j’apprenne à regarder sous le capot de WordPress

  10. Jay Duboll

    Le 26 mars 2021

    Super tuto ! bravo
    petit détail minuscule, “Valeur affichée dans le template” est devenu “Format dans le modèle” ( dans le champ pochette )

    1. Maxime BJ

      Le 26 mars 2021

      Merci, je corrige. En plus, le pire, c’est que c’est moi qui ai changé cette traduction !

  11. Sal.A

    Le 21 avril 2021

    Bonjour, merci pour cet article. J’ai supprimé un champs ACF, pensant qu’il n’allait plus paraitre sur le site. Mais même en ayant “supprimé“ le champs, il apparait toujours sur le siteweb. Je ne suis pas vraiment experte (j’arrive pas non plus à avoir accès au back, c’est pas moi qui ai codé le site)

    1. Maxime BJ

      Le 22 avril 2021

      Oui car les données restent en base de données. Il va flaloir supprimer l’affichage des champs dans ton modèle de page get_field(‘tonchamp’).

  12. Nicolas

    Le 1 juin 2021

    Bonjour, article très instructif donc merci beaucoup. Petite question, est-ce que les styles CSS des dans le code du template sont “fait maison” par vos soins ? Ou bien ce sont des classes présentent de base dans WordPress ?

    1. Maxime BJ

      Le 1 juin 2021

      WordPress ne fournit pas de styles pour ton thème par défaut. C’est donc à toi de les créer. Tu peux également utiliser des starter-themes comme underscore qui te proposent une certaine base, ou même utiliser des librairies de styles comme Tailwind pour te simplifier la tâche.

  13. Dominique

    Le 29 août 2021

    Bonjour,
    Merci, mais je n’arrive pas à savoir si cela va pouvoir faire ce que je veux..
    Exemple : je crée un type de contenu ‘personnel’ avec différents champs qui m’intéressent, ce qui va donner en fait un formulaire à remplir. Donc à chaque saisie on aura une fiche (qui pourra être une page par employé dans l’annuaire), employé1, employé2, employé3, etc.. avec toutes les infos et photo qui le concernent. Ensuite je veux afficher dans une page uniquement les employés du service compta et du bâtiment A, ou les ingénieurs qui sont basés à l’étranger par exemple, etc… Bref faire une requête sur les différents champs du type de contenu créé et afficher le résultat dans une page. Est-ce que ACF Pro permet de faire ça sans mettre (trop) les mains dans le code ? Est-ce qu’il faut avoir forcément un thème enfant, sinon risque de perdre la config suite à une mise à jour du thème ?
    J’utilise Astra et Elementor (pas pro).
    Prête à faire la formation si la réponse est oui ! Déjà fait wpchef 😉
    Merci pour l’aiguillage !

    1. Maxime BJ

      Le 29 août 2021

      Ce que tu cherches ici, en plus de données supplémentaires, est un système de filtre. Le plus simple, pour se passer au maximum du code, sera d’utiliser une extension comme WP Grid Builder (made in France) ou encore Facet WP. Les deux prennent en compte les champs ACF dans les filtres de tri qu’ils proposent. Il te faudra donc mixer les deux techniques (ACF + extension de filtre). Je t’invite à suivre tous les cours de la partie ACF dans un premier temps pour être à l’aise avec les champs et toutes les possibilités, puis voir ensuite pour ajouter des filtres.

  14. Nox

    Le 18 octobre 2021

    Bonjour, comment faire pour récupérer les données inscrites dans les champs créés avec acf lors de l’inscription, pour les retranscrire dans le profil user afin de pouvoir les modifiers si nécessaire ?

    1. Maxime BJ

      Le 18 octobre 2021

      Il va falloir utiliser le second paramètre de get_field, voici la doc correspondante : https://www.advancedcustomfields.com/resources/how-to-get-values-from-a-user/.

      1. Nox

        Le 18 octobre 2021

        Merci pour ton retour. J’aimerai au préalable récupérer des champs de gravity forms à l’inscription dans des champs ACF ?

        1. Maxime BJ

          Le 18 octobre 2021

          Tu peux utiliser le hook gform_after_submission de Gravity Forms : https://docs.gravityforms.com/gform_after_submission/.
          Ensuite, tu peux enregistrer les données dans un user meta via : https://developer.wordpress.org/reference/functions/update_user_meta/.

          1. Nox

            Le 21 octobre 2021

            Encore merci pour ton aide. Cependant je rencontre un problème lors de la validation du formulaire d’inscription (woocommerce). Par défaut woocommerce envoie un mail de confirmation d’inscription à l’utilisateur, et durant ce temps l’utilisateur n’a pas encore d’id, il m’est donc pas possible d’utiliser la méthode update_user_meta() qui demande en paramètre le user id, puisque à ce moment-là, il n’est pas encore créé. Aurais-tu une solution à m’apporter ?

            1. Maxime BJ

              Le 21 octobre 2021

              À mon avis, lorsque l’e-mail est envoyé, l’utilisateur a déjà été créé. C’est quasi sûr, surtout si tu fais référence à l’e-mail qui indique l’identifiant + mot de passe de connexion. Par contre, je suis désolé mais c’est une problématique trop personnelle, et je ne peux pas t’accompagner sur du support aussi poussé.

  15. Sébastien

    Le 2 janvier 2022

    Bonjour,
    Bravo pour votre explication sur les ACF. Je suis novice, j’ai ACF gratuit et souhaite savoir si on peut utiliser les valeurs d’un champs pour ordonner selon ces valeurs (post cards dans mon cas).
    Merci, et meilleure année 2022

    1. Maxime BJ

      Le 10 janvier 2022

      Oui tu peux tout faire ! Tu vas par exemple pouvoir écrire une WP Query pour récupérer des publications, et les ordonner par rapport à la valeur d’un champ ACF (grâce aux paramètres de meta query).

  16. Matias Brice

    Le 12 janvier 2022

    Bonjour , novice avec ACF j’ai un petit soucis je voulais utiliser acf pour faire des créations de personnel mais le probleme lorsque j’ai créer mon personnel il s’afficher et si je veux en créer un 2 eme les valeurs du premier personnel récupére celle du 2 eme .. Je peux pas utiliser mon groupe plusieurs fois sur ma page…

    1. Maxime BJ

      Le 12 janvier 2022

      Je t’invite à continuer jusqu’au cours sur le champ répéteur. C’est lui qui t’apportera la solution à cette problématique.

  17. Phil

    Le 14 mars 2022

    Bonjour tout le monde

    je teste ACF (Advanced Custom Fields) pour créer une page d’accueil avec une interface administrateur.
    Concrètement l’administrateur pourra “fabriquer” sa page d’accueil avec divers sections.
    Ces sections seront paramétrables en BackOffice via plusieurs onglets, j’ai réussi à créer plusieurs sections paramétrables mais je bloque sur une qui est un répéteur contenant une image qui surplombe un bouton avec un lien.

    J’ai créé un champs ACF Accueil avec toutes un onglet et toutes les sections, mais voici le champs pour lequel cela ne fonctionne pas, il est composé de :

    champs “dons” – type onglet
    Champs afficher oui-non / homepage_donsfrance / type Vrai-Faux
    Champs Revenu / dons_revenu / type Texte
    Champs Grille / dons_grid / type Répéteur

    Mon répéteur est composé de
    Lien / lien /type Lien
    Couleur / color type Couleur
    Titre / titre / type Texte
    Image / image / type Image

    Avez-vous une idée d’où ça coince ? Ni l’image, ni le texxte et l’url ne s’affiche ?
    Merci d’avance ! (excusez le message un peu long mais je m’arrache les cheveux depuis 3 jours )

    1. Maxime BJ

      Le 14 mars 2022

      Bonjour Phil, je t’invite à suivre la formation dans son intégralité avant tout. Tu trouveras la plupart de tes réponses. D’ailleurs, je pense que le champ flexible sera adapté à ta problématique.

  18. Henock MASS

    Le 22 mars 2022

    Merci pour cet article qui m’a beaucoup aidé.
    J’aimerais savoir comment l’ACF se comporte dans le cas de shortcode.

    1. Maxime BJ

      Le 22 mars 2022

      ACF utilise les champs natifs de WordPress, et il n’y aura donc aucun souci de compatibilité avec les Shortcodes. Tout fonctionnera parfaitement !

  19. Fred

    Le 25 mars 2022

    Hello,
    je continue le cours, par contre petit souci dans celui-ci:

    Lors de l’affichage de l’image, tu exposes une seconde façon de faire, en ne récupérant que l’id de l’image pour utiliser une fonction WP pour l’afficher directement.

    Hors, tu utilises ce code dans le bloc de code exemple:
    $image_id = get_field( ‘pochette’ )

    Ce qui est le même code que pour la 1ere façon de faire, et on récupère donc tout le tableau de données, et non l’id.

    J’ai du corriger et faire ça pour que ça fonctionne:
    $image_id = get_field( ‘pochette’ )[‘id’];

    C’est moi qui ai zappé un truc, ou c’est bien un erreur dans le code?
    (a noter que je retrouve la même erreur au cours suivant sur les détails de champs ACF, donc c’est peut être moi qui ait zappé un truc 😉 )

    1. Maxime BJ

      Le 25 mars 2022

      C’est parce que j’ai changé le format de sortie dans le champ ACF. J’ai définit ID de l’image au lieu de Tableau de données. La fonctionne reste donc la même mais c’est selon ce qu’on a dit à ACF de nous retourner, que la donnée va changer.

  20. Niko

    Le 13 mai 2022

    Hello
    Suite à la demande d’une agence SEO, je cherche à récupérer le contenu d’un champ (que j’ai créé via ACF dans les catégories de produit de WooCommerce) dans une fonction du fichier functions.php j’ai essayé des tones de trucs trouvé sur le net, mais rien ne fonctionne, je n’arrive pas à récupérer le contenu.
    C’est pour remplacer le titre de la catégorie produit par un autre (celui du nouveau champ ACF) et que ce titre ne s’affiche que sur les archives catégorie du site (pas dans les menus et autres widgets où là s’affiche le titre par défaut.
    Quelqu’un aurai une solution svp ?

    1. Maxime BJ

      Le 13 mai 2022

      Dans ce cas le functions.php n’est pas le bon fichier. Il faudra plutôt faire ça directement sur le fichier de template concerné, selon le template hierarchy. Probablement archive-product.php ou taxonomy-product_cat.php

      1. Julien

        Le 12 juillet 2022

        Bonsoir,

        Dans les options d’un “groupe de champs”, il y a :

        Masquer
        Sélectionnez les champs que vous souhaitez masquer sur la page d‘édition.

        Cependant, les paramètres ne semble pas pris en compte, savez-vous pour quelle raison ? je précise que je possède pas encore ACF PRO.

        Merci

        1. Maxime BJ

          Le 12 juillet 2022

          Ce sont des anciennes options qui fonctionnaient uniquement avec l’ancien éditeur de WordPress. Ces réglages ne fonctionnent plus depuis l’éditeur de bloc (Gutenberg).

          1. Julien

            Le 12 juillet 2022

            Du coup j’imagine qu’aucune alternative n’existe ? Parce-que ça me semblait être efficace pour l’expérience utilisateur de ne posséder que ce pourquoi il avait besoin.

            Merci

            1. Maxime BJ

              Le 12 juillet 2022

              Non car les métabox sont déclarées en JS côté Gutenberg désormais. Mais c’est pas plus mal je pense : au moins l’interface est cohérente. Tu peux toujours désactiver Gutenberg sur les CPT où tu n’en as pas besoin. Dans ce cas la page pourrait n’afficher que les champs ACF. Tu peux désactiver l’éditeur en passant show_in_rest à false dans la déclaration de ton CPT.

  21. Yohan

    Le 26 février 2023

    Hello Maxime,

    J’ai un soucis avec ACF… J’ai défini un champ nommé “intro_first_paragraph” que j’appelle de cette manière :

    Qu’est-ce que j’ai oublié ? Merci d’avance pour ton aide !

    1. Yohan

      Le 26 février 2023

      On supprimant le texte et en l’ajoutant à nouveau, cela fonctionne… C’est étrange mais au moins cela règle le soucis

      1. Maxime BJ

        Le 27 février 2023

        Tu utilises bien the_field(‘intro_first_paragraph’); ? Est-ce que tu n’as pas eu un souci de cache (normalement non, même si tu en as un d’activé sur le site, il n’est pas actif pour les admins connectés). Si tu as trouvé, parfait !

Laisser un commentaire