WordPress, Champs personnalisés, Personnaliser – Utiliser les champs personnalisés dans WordPress
Les champs personnalisés autrement dit les Custom Fields
sont tout ce qui vous restent lorsque vous ne pouvez assigner votre contenu aux formes classiques proposés par WordPress à savoir Article, Page, Lien
. Dès lors que vous utilisez les champs personnalisés, vous mettez sans la savoir le doigt dans l’engrenage de la personnalisation de la gestion de contenu et de son affichage de votre contenu. Engrenage dont vous sortirez probablement vivant mais mais au prix exorbitant de la création tous azimuts de Custom Fields
qui rend la gestion de votre contenu désormais plus complexe.
En matière de gestion de contenu, on peut se mettre à penser que Drupal
bien que à notre avis plus difficile à prendre en main permet d’ingérer plus facilement du contenu de forme diverse. En effet, Drupal se révèle plus souple quant à sa capacité à accueillir et à restituer du contenu hétérogène mais il est définitivement plus technique et complexe que WordPress dans la gestion de contenu. La courbe d’apprentissage de WP infiniment moins longue que celle de Drupal.
- Nom => le champs personnalisé
- Pays => country
- Ville => city
La commande qui appelle le champs personnalisé
Les fonctions pour les champs personnalisés
Les explications concernant toutes les autres fonctions susceptibles d’appeler les champs personnalisés. Elles sont disponibles sur le codex de WordPress
Cette fonction retourne toutes les combinaisons clé/valeur pour un article (post) get_post_custom();
. Dans notre exemple, le champs personnalisé que l’on retourne est country
.
$custom_fields = get_post_custom($post->ID); $my_custom_field = $custom_fields['country']; foreach ( $my_custom_field as $key => $value ) echo $key . " => " . $value . "<br />"; |
Le rendu HTML du code pour un article doté d’un champ personnalisé country
0 => Allemagne |
Source : http://codex.wordpress.org/Function_Reference/get_post_custom
La fonction récupère toute la liste des clés de l’article (post) get_post_custom_keys();
.
$custom_field_keys = get_post_custom_keys(); foreach ( $custom_field_keys as $key => $value ) { $valuet = trim($value); if ( '_' == $valuet{0} ) continue; echo $key . " => " . $value . "<br />"; } |
Le rendu HTML du code pour un article doté de 2 champs personnalisés country, city
2 => country 3 => city |
Source : http://codex.wordpress.org/Function_Reference/get_post_custom_values
La fonction retourne le couple clé/valeur spécifique pour l’article affiché. Dans notre exemple, attaché à cet article, nous affichons champs personnalisé country
$mykey_values = get_post_custom_values('country'); foreach ( $mykey_values as $key => $value ) { echo "$key => $value ('country')<br />"; } |
Le rendu HTML du code pour un article doté d’un champs personnalisé country
0 => Espagne ('country') |
Source : http://codex.wordpress.org/Function_Reference/get_post_custom_values
La fonction requiert l’id de l’article (post), la clé et si la dernière valeur est fixé à true
, cela permettra d’imprimer la valeur.
if (get_post_meta($post->ID,'country',true)) : echo ('<br><b>Pays :</b><br> '.get_post_meta($post->ID,'country',true).''); endif; |
Source : http://codex.wordpress.org/Function_Reference/get_post_custom
Un exemple d’appel aux champs personnalisés
Le code spécifique pour l’affichage des champs personnalisés.
<?php if (get_post_meta($post->ID,'country',true)) : echo ('<br><b>Pays :</b><br> '.get_post_meta($post->ID,'country',true).''); endif; if (get_post_meta($post->ID,'city',true)) : echo ('<br><b>Ville :</b><br> '.get_post_meta($post->ID,'city',true).''); endif; ?> |
Le code complet de la boucle pour afficher le contenu de la page archive.php
<?php while (have_posts()) : the_post(); ?> <div <?php post_class() ?>> <h3 id="post-<?php the_ID(); ?>"><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h3> <small><?php the_time('l, F jS, Y') ?></small> <div class="entry"> <?php /* the_content() */ ?> </div> <?php if (get_post_meta($post->ID,'country',true)) : echo ('<br><b>Pays :</b><br> '.get_post_meta($post->ID,'country',true).''); endif; if (get_post_meta($post->ID,'city',true)) : echo ('<br><b>Ville :</b><br> '.get_post_meta($post->ID,'city',true).''); endif; ?> <p class="postmetadata"><?php the_tags('Tags: ', ', ', '<br />'); ?> Posted in <?php the_category(', ') ?> | <?php edit_post_link('Edit', '', ' | '); ?> <?php comments_popup_link('No Comments »', '1 Comment »', '% Comments »'); ?></p> </div> <?php endwhile; ?> |
Conclusion : L’utilisation de champs personnalisés (custom fields
) peut se révéler très utile sous WP. De très nombreux thèmes résolvent notamment les difficultés à gérer un contenu hétérogène sous WordPress à l’aide des champs personnalisés (custom fields
) et notamment l’affichage d’images dans ce que l’on a coutume de nommer un “slideshow”. Un conseil comme pour toute bonne chose, il faut savoir en utiliser les custom fields
avec modération. Dès lors que leur nombre devient très important, il faut envisager une véritable extension fonctionnelle (plugin) afin d’apurer toutes ces custom fields
qui sont autant de rustines sur votre WP mais dont vous êtes le seul à connaitre la fonction.
Un “slideshow” sur le blog de 3WDOC.COM
Les champs personnalisés qui pilotent le “slideshow”
En savoir plus
- Utiliser les champs personnalisés (Using Custom Fields)
http://codex.wordpress.org/Using_Custom_Fields - Ne dites pas de WordPress que c’est un CMS, tout le monde pense que c’est un outil de blog / WordPress as CMS: How to use custom fields in your theme
http://outthinkgroup.com/2009/01/15/wordpress-as-cms-how-to-use-custom-fields-in-your-theme/ - Tutoriel: WordPress, les champs personnalisés
“http://www.scriptol.fr/wordpress/wordpress-champ-personnalise.php - Du bonne usage de champs personnalisés en particulier et du bonne usage de WordPress en particulier
http://www.smashingmagazine.com/2009/05/13/10-custom-fields-hacks-for-wordpress/ - Un article conseillé par le site de WordPress “himself” / Control your own WordPress custom fields
http://sltaylor.co.uk/blog/control-your-own-wordpress-custom-fields/