En standard, wordpress permet pour chaque article d’ajouter des « champs personnalisés ». C’est une liste de « clés = valeurs » qui peuvent servir à stocker tout types d’information.
Mais l’interface utilisateur est un peu limitée et on ne peut entrer que du texte. Donc ajouter une image ou une date est possible, mais n’est pas forcément simple.
Le plugin advanced-custom-fields: http://wordpress.org/plugins/advanced-custom-fields/ offre une interface simple, puissante et conviviale pour gérer des champs personnalisés.
Cette interface utilise le principe des groupes champs pour faire des « packs » de champs personnalisés. Puis pour chaque groupe de champs il faut préciser, à l’aide de règles, sur quels contenu il est pertinent de l’afficher.
Par exemple, si je veux que certains articles soit des articles représentant des événements. Je peux créer un groupe de champs personnalisés qui contient des infos comme la date et le lieu.
Puis je dis que je veux afficher ces champs personnalisés uniquement sur les articles qui sont dans une catégorie que j’aurai créé qui s’appelle « événement ».
Voilà en quelques clics, j’ai créé une structure facile à utiliser et intuitive pour gérer un type de contenu particulier. Dans cet exemple de l’événement, le champs date est particulièrement intéressant. Il est créer grâce au champ de type « date picker ». (qui permet plusieurs formats de stockage et/ou d’affichage, ce qui n’est pas toujours simple à trouver dans les plugin de calendrier/agenda.)
L’étape suivante consiste à afficher les données que l’on a stockée grâce aux champs personnalisés. Pour ce faire il faut éditer les « template » php d’affichage des pages et article pour ajouter l’affichage des champs personnalisés.
Voici un exemple pour afficher le contenu du champ personnalisé ‘date_picker’ de la page courante.
Posed on: the_field(‘date_picker’); ?>
Le site du plugin Advanced Custom Fields (ACF) propose une abondante documentation et exemple de code.
Mais ACF fait encore plein de choses…
Il existe encore des add-ons (payants 25$) pour ce plugin: http://www.advancedcustomfields.com/add-ons/
Il y en a particulièrement 2 d’intéressants:
- repeater-field => permet de proposer à l’infini un groupe de champs. Utile pour faire une fiche de description d’une personne et entrer sur la même page les données pour plusieurs personnes.
- flexible-content-field => permet de créer des plusieurs blocs de contenu sur la même page. (plusieurs éditeur wysiwyg par exemple)
Je relève particulièrement l’add-on, flexible-content-field: http://www.advancedcustomfields.com/add-ons/flexible-content-field/ qui permet de créer à l’infini des sous-layout. Donc des flexibles content (un peu comme dans typo3).
Un peu difficile à expliquer en mots.. mais juste génial pour faire de wordpress un vrai cms capable d’afficher tout type de contenu dans une même page.Donc un plugin gratuit et deux add-ons… et wordpress devient un CMS.C’est payant, mais vu tout ce que ça fait, ce modeste payement est tout à fait mérité.Si vous n’avez pas compris mes explications, voici une autre explication plus complète des avantages de advanced custom fields.
Encore un avantage de ACF dont je n’ai pas parlé, c’est le fait que l’on peut exporter dans des fichiers (php ou xml) les structures que l’on créées.
En effet, les interfaces graphiques c’est sympatiques, mais dès qu’il faut changer de serveur, déménager le site ou faire des sauvegardes, c’est moins pratique. Les fichiers sont toujours plus pratique à gérer dans ce genre de cas que de cliquer sur 234 formulaires à la suite.
Ainsi ACF permet d’exporter les données et structures. Le plus pratique est le format xml. Il sort quelque chose qui est compatible avec l’importeur xml standard de wordpress. (dans Outils > importer).