Créer un masque de saisie pour n’importe quel type d’article ou pour Custom post type, voilà ce que vous permet de réaliser Advanced Custom Fields. Le tout, sans difficultés majeurs.
Faire de WordPress un CMS pose parfois quelques soucis. Un blog est une chose, un CMS est en une autre. Il est parfois utile, voir obligatoire, d’avoir recours à des types de champs personnalisés.
WordPress permet cette manipulation, mais si vous n’aimez pas plonger dans le code, alors il vous vous faut passer par un plugin. Pour cela, Advanced Custom Field est une petite merveille.
Vous allez pouvoir créer autant de groupes contenant tous les champs dont vous avez besoin en un temps record ! De plus, vous allez pouvoir complètement modifier la page de saisie d’article de WordPress, selon vos goûts, ou vos besoins (voir un extrait ci-dessus).
ACF (pour Advanced Custom Fields) est compatible nativement avec les Custom Post Type, ce qui le rend encore plus redoutable dans son utilisation.
Vous pouvez donc créer un Post de type « Film », et créer les champs qui s’y rattache avec ACF, ceux-ci venant se substituer à l’éditeur classique de WordPress, comme sur l’image ci-dessus.
ACF s’installe comme tout plugin, par le dépôt officiel. Il est donc gratuit, ce qui ne gâche rien, vous en conviendrez. On accède à son panneau via le menu « Reglages > Advanced custom fields ».
Depuis l’écran principal, il suffit de cliquez sur le bouton « Add New » pour avoir accès au panel de création de Groupe et champs.
On crée d’abord notre groupe, puis, il suffit d’y ajouter un par un l’ensemble des champs dont nous avons besoin. Les groupes sont très utiles pour subdiviser notre masque de saisie.
Pour un film, on peut créer un groupe « Acteurs », un groupe « Production/Réalisation », un groupe « Synopsis », et ainsi de suite.
Redéfinissez la page de saisie
Une fonction puissante d’ACF réside dans la possibilité de rattacher un groupe à un ou plusieurs type de post.
Par exemple, j’ai un custom post type pour les Acteurs et un autres pour les films. Je vais créer un groupe « Acteurs », contenant un champ « Nom », un champ « Prénom, un champ « Filmographie », et un champ « Portait » (une photo).
Je vais attacher ce groupe de champ à mon custom post type « Acteurs » ET à mon custom post type « Films ».
ACF va aussi plus loin en vous permettant de masquer les metabox par défaut de WordPress ! Ainsi, votre masque de saisie prend définitivement toute la place sur votre page (comme dans la première image).
Côté code
Forcément, toutes ces modifications vont avoir un petite revers. Le code que vous allez devoir ajouter dans votre site. Maine paniquer pas ! Cela se fait très simplement avec un petit bout de code en php.
<?php the_field(nom_du_champ);?>
Placez ce bout de code là ou vous souhaitez voir apparaitre le contenu du champ, tout en restant dans la boucle. Il vous suffit ensuite de remplacer « nom_du_champ » par le nom de votre champ, et c’est tout.
Si vous souhaitez utiliser le champ « Repeater », je vous conseil la lecture de la documentation qui est plutôt pas mal.
Advanced Custom Fields
WordPress en mode CMS
Un plugin très pratique, simple et puissant pour créer vos masques de saisies. Compatible Custom Post, Past et Pages.











J’ai écrit un acticle récemment sur ce très bon plugin.
http://bulledeveloppement.com/811-champs-personnalises-simplicite
Les grands esprits finissent toujours par se rencontrer
Les grands esprits finissent toujours par se rencontrer
Je laisse ton lien en place, cela pourra servir à d’autres, et cela fera également découvrir ton site.
hehe merci bien
Bonjour
Je ne l’ai pas encore testé celui-ci
Mais je suis fervent utilisateur de deux concurrents :
- MagicFields (terriblissime !)
- le triplet More Types / More fields / More taxonomies (terrible également !)
Le premier, dans sa version actuelle, utilise les custom fields natifs et un système propriétaire de custom post types, mais la version 2.0 (en beta) corrige cela. Gros avantage, permet de multiplier une même metabox dans un unique article (fonctionnalité exclusive !), par ex. pour faire des « sous-articles multiples » dans un article
Le second intègre totalement les customs de WordPress et permet de construire le back-office sans aucune ligne de code
J’ai testé la beta de Magic Fields, j’aime bcp l’option champ obligatoire, le soucis, c’est que c’ehttp://4h18.com/wp-admin/edit-comments.php#comments-formst vraiment une beta. Et je ne peux pas la mettre en prod chez un client pour le moment.
Mais elle s’avère très prometteuse en effet.
Pour la dernière solution, 3 plugins, ça fait lourd non ?…
Déjà testé, et c’est vrai que c’est un très bon plugin, assez pratique je trouve
Très clairement, couplé aux CPT, il devient même assez redoutable. Mais comme mentionné, la future V2 de Magic Fields sera à surveiller de très très prêt.
Bonjour, et merci pour ce plugin qui vient de me sauver la vie. Je cherchais exactement cela depuis 1 mois.
Par contre quelqu’un sait comment ajouter un champ image avec une zoombox?
Merci
Yep !
Tu récupéres ton champ image préalablement crée avec le plugin.
Ensuite, tu affiches ton image avec un code html classique.
Pour ajouter un effet lightbox, généralement, on reprend la même chose, et on ajoute la balise rel :
rel="lightbox"
Il faut vérifier dans la doc de ton plugin pour être certain du contenu de la balise rel, cela varie d’une extension à l’autre.
Par exemple, pour la fancybox, on met
rel="fancybox"En espérant que cela t’aide.
Merci
Le truc c’est que mon champ est :
<img src=" » alt= »">
Donc je fais quoi?
oup’s il manque des morceau
pour resumer, j’utilise le champ : <img src=" » alt= »"width= »100″ height= »100″ />
donc ou placer rel= »fancybox »
Entre img et src par exemple :
marche pas..
<img rel="fancybox" (src=champ field image; « ) alt= »"width= »100″ />
Ca marche pour la fancybox, reste a regler le pb si il n’y a aucune image car sur chrome petit picto « pas de fichier » beurk
Mon code est le suivant :
<a rel="fancybox" href=" »><img src="/wp-content/themes/sportpress/scripts/timthumb.php?src= » alt= »" />
Cela fonctionne mais si je n’ai pas d’image, j’ai petit icone qui s’affiche sous chrome et ie
Article génial et plugin génial !
Cependant je rencontre un problème a priori tout simple…comment faire pour faire apparaître le titre d’un champs, juste avant le contenu de ce champs? Sans avoir à l’inscrire en « dur » dans le template?
Merci d’avance !
Bonsoir,
La réponse est dans la documentation, sur le site officielle, documentation très bien faite au demeurant.
Pour info, c’est le premier exemple sur la page.
Bonjour,
Merci pour votre réponse mais je ne comprends pas. J’ai fouiné partout dans la doc officielle et impossible de trouver comment ajouter ce fameux « titre des champs »…any help? Merci d’avance.
Ce que je ne comprend pas, c’est pourquoi vous ne voulez pas le coder en dur ?
Chaque champ est unique, son nom n’est pas dynamique, donc, je ne vois pas trop le soucis à vrai dire.