# Type de contenu personnalisé

> Un type de contenu personnalisé est un type d'objet déclaré par un thème ou une extension, distinct des articles et des pages, pour modéliser un contenu métier.

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

Un catalogue de produits, une base de recettes ou un annuaire de membres ne correspondent ni à des articles chronologiques ni à des pages statiques ; WordPress permet de créer un type de contenu sur mesure plutôt que de forcer ces données dans un moule inadapté.

## Fonctionnement dans WordPress

La déclaration se fait avec `register_post_type()`, en précisant notamment si le type est public, quelles fonctionnalités il prend en charge via l'argument `supports` (titre, éditeur, image mise en avant...), et selon quelle structure il apparaît dans les permaliens grâce à l'argument `rewrite`. Comme les articles, il peut être associé à des taxonomies, natives ou personnalisées, et recevoir des champs personnalisés.

## Exemple

```
register_post_type( 'produit', array(
    'label'    => 'Produits',
    'public'   => true,
    'supports' => array( 'title', 'editor', 'thumbnail' ),
    'rewrite'  => array( 'slug' => 'catalogue' ),
) );
```

## Bon à savoir

Un type de contenu personnalisé enregistré uniquement dans les fichiers d'une extension doit obligatoirement déclencher un rafraîchissement des règles de réécriture — au minimum une fois, à l'activation — pour que ses permaliens fonctionnent au lieu de renvoyer une page 404.

L'argument `show_in_rest` conditionne aussi la disponibilité du type dans l'éditeur de blocs et dans l'API REST ; l'omettre laisse le type invisible dans l'interface moderne, même si son contenu reste parfaitement gérable depuis l'éditeur classique ou par du code personnalisé.

Contrairement à une idée répandue, un type de contenu personnalisé n'a pas besoin d'être public pour être utile : un type interne, marqué `public` à `false`, permet de stocker des données structurées destinées uniquement à un usage administratif, sans jamais générer de page publique correspondante.
