WordPress.org

Ready to get started?Download WordPress

Codex

Attention Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

fr:Utiliser les champs personnalisés

Page d'accueil du Codex en français - Télécharger WordPress en français
Les utilisateurs francophones se retrouvent sur le site WordPress-Francophone, notamment sur son forum d'entraide.

WordPress a la particularité de permettre aux utilisateurs d'assigner des champs personnalisables à un article. Ces informations supplémentaires arbitraires sont aussi connues sous le nom de meta-données. Ces meta-données peuvent contenir des informations telles que :

  • Humeur: Content
  • Lecture actuelle: Cendrillon
  • J'écoute: Rock Around the Clock
  • Météo: Chaud et humide

Avec un peu de programmation supplémentaire, il est possible de gérer des actions plus complexes, comme utiliser une meta-donnée pour garder en mémoire une date d'expiration de l'article.

Ces meta-données sont gérées avec des paires clé/valeur. La clé correspond au nom de la méta-donnée. La valeur représente l'information que doit porter la méta-donnée dans la liste des informations associées à chaque article qui porte cette méta-donnée.

Il est possible d'associer plusieurs fois la même clé pour un même article. Par exemple, si vous lisez deux livres en même temps (peut-être un livre technique pour votre travail et un roman à la maison), vous pouvez créer une clé "lecture" que vous utilisez deux fois sur le même article, une pour chaque livre.

Voici un exemple de la façon dont ces informations peuvent apparaitre dans votre article :

Lectures actuelles: Calvin et Hobbes

Humeur du jour: Content et heureux

Utilisation

Basé sur l'exemple ci-dessus, mettons-le en application. Nous allons ajouter deux champs personnalisables, le premier sera appelé "Lectures" et le second "Humeur du jour". Les instructions suivantes vous montreront comment ajouter ces informations à un article en utilisant les champs personnalisables.

  1. A partir de la page Écrire, choisissez Édition avancée. Si vous utilisez l'écran d'édition simple, cherchez un bouton à côté du bouton Publier dont le libellé est Édition avancée ». Cliquez sur ce bouton et allez à l'écran d'édition avancée.
  2. Après avoir rédigé votre article, allez en bas de la section édition avancée et cherchez une zone appelée Champs personnalisables.
  3. Pour créer un nouveau champ personnalisable appelé "Lectures", tapez le texte "Lectures" dans la zone de texte clé.
  4. Cette nouvelle clé doit avoir une valeur associée, qui dans notre cas correspond au nom du livre que nous sommes en train de lire : "Calvin et Hobbes". Tapez "Calvin et Hobbes" dans la zone Valeur.
  5. Cliquez sur le bouton Ajouter Champ Personnalisé pour sauvegarder ces informations pour cet article.

Pour ajouter votre "Humeur du jour", répétez le processus avec "Humeur du jour" dans la clé et la description de votre humeur dans la zone valeur puis cliquez sur Sauvegarder pour enregistrer cette information en même temps que l'article.

Sur votre article suivant, vous pouvez ajouter un nouveau livre et votre humeur à vos méta-données. Dans la section Champs personnalisables, la zone clé contient maintenant une liste déroulante avec les clés saisies sur les articles précédents. Choissisez "Lectures" et saisissez le titre de votre nouveau livre dans la zone valeur. Cliquez sur Ajouter Champ personnalisable et répétez l'opération pour ajouter votre "Humeur du jour".

Il suffit de créer une seule fois une clé, ensuite vous pouvez assigner une valeur à cette clé pour tous vos articles, si vous le souhaitez. Vous pouvez aussi assigner plus d'une valeur à une clé pour le même article. C'est très pratique pour les personnes qui lisent plus d'un livre à la fois.

Afficher les champs personnalisables

Une fois les champs personnalisables créés, il faut les afficher afin que tout le monde puisse voir vos lectures et votre humeur du jour. Pour afficher le champ personnalisable de chaque article, il faut utiliser la balise de modèle the_meta() (en anglais). Cette balise doit être placée à l'intérieur de la Boucle (en anglais) pour fonctionner. La plupart des gens ajoute cette balise the_meta() à la fin de leur article ou dans la section méta données de l'article (en anglais).

Voici un exemple simple d'utilisation de cette balise :

 <?php the_meta(); ?> 

à l'affichage de la page, le code devrait ressembler à ceci:

<ul class='post-meta'>
<li><span class='post-meta-key'>Lectures:</span> Calvin et Hobbes</li>
<li><span class='post-meta-key'>Humeur du jour:</span> Content et Heureux</li>
</ul>

La balise de modèle met automatiquement toutes les meta-données personnalisées dans une liste dont la classe CSS s'appelle post-meta. La clé est placée dans une balise HTML span de classe CSS post-meta-key ainsi vous pouvez l'habiller via la feuille de style. Toutes ces données sont présentées dans une liste à puce.

Pour habiller la liste post-meta, changez les caractéristiques dans la feuille de style. Pour l'instant, ajoutons quelques effets à notre exemple. Les éléments de la feuille de style peuvent ressembler à ceci:

.post-meta {font-variant: small-caps; color: maroon; }
.post-meta-key {color: green; font-weight: bold; font-size: 110%; }
  • Lectures: Calvin et Hobbes
  • Humeur du jour: Content et Heureux

Il y a aussi WordPress Plugins de Official WordPress Plugin Directory (en anglais) qui ajoutent des fonctions utiles pour l'affichage de ces méta-données. Recherchez Custom Field plugins sur Google et vous en trouverez encore plus.

Champs personnalisables : Techniques Avancées

Ci-dessous vous trouverez des techniques avancées pour utiliser et paramétrer les méta-données et champs personnalisables.

Récupérer les champs personnalisables

Pour récupérer les méta-données, utilisez la fonction PHP get_post_meta():

 get_post_meta($post_id, $clé, $unique); 

  • $post_id est le numéro identifiant l'article dont vous voulez récupérer les méta-données. Utilisez $post->ID pour obtenir ce numéro d'identifiant.
  • $clé est la chaine de caractère qui contient le nom de la méta-donnée dont vous voulez récupérer la valeur.
  • $unique peut être soit true (vrai) ou false (faux). Si la valeur est vrai, la fonction renverra un résultat simple sous la forme d'une chaîne de caractère. Si la valeur est fausse ou non précisée, la fonction renverra un tableau de champs personnalisables.

Détails d'implémentation

Les méta-informations des articles sont stockées dans une table particulière, $wpdb->postmeta. Cette table contient quatre champs:

meta_id: Identifiant unique pour chaque entrée
post_id: L'identifiant de l'article pour cette méta-donnée
meta_key: Le nom de la clé
meta_value: La valeur associée à cette clé

Les valeurs de cette table sont stockées dans un tableau multi-dimensionnel structuré appelé $post_meta_cache, après la récupération des articles dans le tableau $posts dans wp-blog-header.php. Cette variable ne contient que les valeurs associées aux articles récupérés pour la page courante. La structure de ce tableau se présente comme ceci:

 [
   postid1 => [
     [
       clé1 => [valeur1, valeur2, ...],
       clé2 => [valeur1, valeur2, ...],
       ...
     ],
   postid2 => [ ... ],
   ...
 ]

Ainsi, pour récupérer les valeurs de "Lectures" pour l'article 256, vous devrez utilisez le code PHP suivant:

 // Fetch an array of values for what I'm reading:   $readinglist = $post_meta_cache[256]['Lectures']; 

Ne pas oublier que $readinglist contient un tableau et non une chaîne de caractères.
A partir de WordPress 2.1, $post_meta_cache n'est plus prérempli. Vous pouvez récupérer les valeurs grâce aux fonctions mentionnées plus bas.

Fonctions PostMeta

Fonctions internes

Ces fonctions sont faites pour être appelées à l'intérieur de la boucle WordPress, et retournent toutes des tableaux.

get_post_custom()
Récupère toutes les paires clé/valeur pour l'article courant.
get_post_custom_keys()
Récupère la liste de toutes les clés pour l'article courant.
get_post_custom_values($clé)
Récupère la liste des valeurs pour une clé particulière pour l'article courant.
get_post_meta($post_id, $key, $single = false)
WordPress 1.5 et plus, cette fonction récupère les informations sans passer par le cache ($post_meta_cache). Cette fonction requiert le numéro de l'article et la clé à récupérer pour un usage en PHP. A noter que si le paramètre $single est passé avec la valeur TRUE, la fonction renvoie le premier résultat sous forme d'une chaîne et non un tableau.

Fonctions de thème

Au moment de la rédaction de cette page, il n'existe qu'une fonction de thème.

the_meta()
Affiche une liste à puce contenant les méta-données avec la classe CSS post-meta pour l'élement UL et la classe CSS post-meta-key pour chaque élément LI.

Nous esperons que les développeurs indépendants vont fournir beaucoup d'usages intéressants pour ces méta-données sous la forme de plugins. La fonction de thème the_meta() n'est qu'un exemple très simple.

Retour à la Page d'Accueil