# Champ personnalisé

> Un champ personnalisé associe une information libre, sous forme de clé et de valeur, à un article ou une page, en complément des champs natifs du contenu.

- Auteur : Clément Hadrot
- Publié le : 2026-09-25
- Mis à jour le : 2026-09-25
- URL : https://wpmoderne.dev.wordpress-developpement.fr/lexique/champ-personnalise/

Le titre, le contenu et la date ne suffisent pas toujours : un prix, une note, des coordonnées GPS ou une référence produit demandent un espace de stockage supplémentaire attaché à chaque contenu individuellement.

## Fonctionnement dans WordPress

Ces informations sont stockées comme métadonnées dans la table `wp_postmeta`, sous forme de paires clé/valeur, potentiellement répétées pour une même clé. L'éditeur classique propose un panneau « Champs personnalisés » natif ; l'éditeur de blocs délègue généralement cette saisie à des boîtes meta ou à des extensions comme Advanced Custom Fields. Côté code, on lit et on écrit ces valeurs avec `get_post_meta()` et `update_post_meta()`.

## Exemple

```
update_post_meta( $post_id, 'prix_ht', 49.90 );
$prix = get_post_meta( $post_id, 'prix_ht', true );
```

## Bon à savoir

- Le troisième paramètre `true` de `get_post_meta()` retourne une valeur unique plutôt qu'un tableau ; l'omettre est une erreur fréquente chez les débutants.
- Pour rendre un champ personnalisé disponible dans l'API REST, il faut le déclarer explicitement avec `register_post_meta()` et l'argument `show_in_rest`.
- Une clé de champ personnalisé commençant par un caractère souligné (`_prix_ht`) est automatiquement masquée du panneau natif de l'éditeur, une convention souvent utilisée pour cacher des métadonnées techniques que l'utilisateur ne doit pas modifier à la main.

Les valeurs stockées restent toujours des chaînes de caractères ou des structures sérialisées côté base de données ; convertir explicitement un nombre ou un booléen à la lecture, avec `(int)` ou `(bool)`, évite des comparaisons approximatives plus loin dans le code.
