Glossaire

Que sont les custom post types WordPress ?

20 mai 2026

Un custom post type (CPT) WordPress est un type de contenu au delà des cinq intégrés (post, page, attachment, revision, nav_menu_item). Les CPTs permettent de stocker du contenu structuré comme des produits, événements, biens immobiliers, recettes, témoignages ou portfolios, chacun avec son propre menu d’admin, écran d’édition, taxonomies, structure d’URL et hiérarchie de templates. Les custom post types ont été introduits dans WordPress 2.9 (décembre 2009) et sont devenus l’approche standard avec register_post_type() dans WordPress 3.0 (juin 2010). Un CPT est enregistré en PHP via register_post_type( $slug, $args ) sur le hook init, ou visuellement via des plugins comme Custom Post Type UI (plus de 700.000 installations actives), Pods (plus de 100.000) et Meta Box (plus de 400.000). Depuis WordPress 5.0 (décembre 2018) les CPTs peuvent activer l’éditeur de blocs en mettant show_in_rest à true, ce qui les expose aussi sur l’API REST à /wp-json/wp/v2/<slug>. WooCommerce enregistre le CPT product plus shop_order, shop_coupon, product_variation et dix autres. The Events Calendar utilise tribe_events. ACF Pro peut enregistrer les CPTs via son interface depuis la version 6.1 (mars 2023). Les custom post types restent l’épine dorsale de tout site WordPress non blog en 2025.

Quand utiliser un custom post type ?

  • Produits e commerce (WooCommerce).
  • Événements (Events Calendar tribe_events).
  • Biens immobiliers.
  • Portfolios.
  • Témoignages, membres d’équipe, FAQ.
  • Recettes avec données structurées.
  • Offres d’emploi.

Enregistrer un custom post type

add_action( 'init', 'mysite_register_product_cpt' );

function mysite_register_product_cpt() {
    $args = array(
        'labels'             => array( 'name' => 'Produits', 'singular_name' => 'Produit' ),
        'public'             => true,
        'show_in_rest'       => true,
        'has_archive'        => true,
        'rewrite'            => array( 'slug' => 'produits' ),
        'supports'           => array( 'title', 'editor', 'thumbnail', 'excerpt' ),
        'menu_icon'          => 'dashicons-cart',
    );
    register_post_type( 'product', $args );
}

Arguments importants

ArgumentRôle
publicDéfinit show_ui, publicly_queryable, exclude_from_search par défaut.
show_in_restObligatoire pour l’éditeur de blocs et le endpoint REST.
has_archiveCrée une archive à /<slug>/.
supportsFonctionnalités activées : title, editor, thumbnail, excerpt, custom-fields.
rewriteSlug d’URL.

Plugin contre thème

Enregistrez les CPTs toujours dans un plugin, jamais dans le thème. Sinon, lorsqu’on change de thème, le CPT disparaît du menu d’admin et le contenu devient inaccessible.

Hiérarchie de templates

  • Single : single-product.php, single.php, singular.php, index.php.
  • Archive : archive-product.php, archive.php, index.php.

CPTs et API REST

Avec show_in_rest => true le CPT est disponible à /wp-json/wp/v2/<rest_base>. Les frontends headless consomment ce endpoint.

Plugins qui enregistrent les CPTs sans code

  • Custom Post Type UI (plus de 700.000 installations).
  • ACF Pro 6.1+ (enregistre les CPTs depuis mars 2023).
  • Pods Framework.
  • Meta Box.
  • Toolset Types.

Performance

  • Tout le contenu CPT vit dans wp_posts. Performance identique jusqu’à ~100.000 lignes.
  • N’enregistrez pas plus de 20 à 30 CPTs par site.
  • Flush rewrite rules une fois à l’activation du plugin.
  • Centaines de milliers d’entrées : envisager une table dédiée (WooCommerce HPOS depuis 8.0 août 2023).

Erreurs courantes

  • Mauvais hook. Utilisez init.
  • Oubli de show_in_rest.
  • Pas de flush des rewrite rules.
  • Enregistrement dans le thème.
  • Collision de slug avec une page.

Ce que vérifie InspectWP

InspectWP détecte les custom post types dans le HTML rendu et explore les endpoints REST API lorsqu’ils sont exposés. Le rapport identifie les fournisseurs populaires (WooCommerce, Events Calendar, ACF).

Vérifiez votre site WordPress dès maintenant

InspectWP analyse votre site WordPress pour détecter les problèmes de sécurité, de SEO, de conformité RGPD et de performance — gratuitement.

Analyser votre site gratuitement