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 =&gt; $value ) {
		    $valuet = trim($value);
		      if ( '_' == $valuet{0} )
		      continue;
		    echo $key . " =&gt; " . $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-&gt;ID,'country',true)) :
			echo ('<br><b>Pays :</b><br> '.get_post_meta($post-&gt;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;
 
?>

WordPress, Champs personnalisés, Personnaliser - Utiliser les champs personnalisés dans WordPress

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 &#187;', '1 Comment &#187;', '% Comments &#187;'); ?></p>
 
 
 
	</div>
 
<?php endwhile; ?>

WordPress, Champs personnalisés, Personnaliser - Utiliser les champs personnalisés dans WordPress

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
WordPress, Champs personnalisés, Personnaliser - Utiliser les champs personnalisés dans WordPress

Les champs personnalisés qui pilotent le « slideshow »
WordPress, Champs personnalisés, Personnaliser - Utiliser les champs personnalisés dans WordPress

En savoir plus