# add_theme_support(‘post-thumbnails’) activé sur un seul type de contenu

> Restreindre les images mises en avant à un seul type de contenu personnalisé, sans les activer partout ni les désactiver après coup pour les autres.

- Auteur : WordPress Développement
- Publié le : 2022-05-26
- Mis à jour le : 2022-05-26
- Catégorie : Thèmes
- URL : https://www.wpmoderne.fr/themes/add-theme-support-post-thumbnails-un-seul-type-contenu/

## L’essentiel

- Un second argument tableau limite les images mises en avant à des types précis
- Éviter d'activer partout puis de masquer via un filtre
- Vérifier le résultat dans l'éditeur, pas seulement au rendu final

`add_theme_support('post-thumbnails')` sans argument active les images mises en avant sur tous les types de contenu publics d'un coup : articles, pages, et tout type personnalisé enregistré avec `'public' => true`. C'est rarement le comportement recherché quand un seul type de contenu, par exemple un annuaire de prestataires, doit réellement en bénéficier.

## Le problème d'une activation trop large

Activer la fonctionnalité sans restriction, puis masquer la métabox correspondante sur les types de contenu non concernés via un filtre, fonctionne mais reste une solution détournée : la fonctionnalité reste techniquement active partout, avec un simple habillage visuel qui la cache. Un client qui modifie un article via l'API REST ou un import en masse peut malgré tout définir une image mise en avant sur un type de contenu où elle n'a aucun usage prévu par le thème.

## La bonne approche : un tableau en second argument

`add_theme_support()` accepte, pour cette fonctionnalité précise, un tableau de noms de types de contenu en second argument, ce qui restreint réellement l'activation aux seuls types listés.

```
function monthème_setup() {
    add_theme_support( 'post-thumbnails', array( 'prestataire' ) );
}
add_action( 'after_setup_theme', 'monthème_setup' );
```

Avec cette déclaration, la métabox « Image mise en avant » n'apparaît que sur l'écran d'édition du type de contenu `prestataire`. Les articles, les pages et tout autre type personnalisé ne proposent tout simplement plus cette option, ce qui simplifie l'interface pour les personnes qui gèrent le contenu au quotidien.

> L'essentiel à retenir : Un second argument tableau limite les images mises en avant à des types précis ; Éviter d'activer partout puis de masquer via un filtre ; Vérifier le résultat dans l'éditeur, pas seulement au rendu final

## Déclarer le type de contenu correspondant

Ce réglage n'a de sens qu'accompagné d'un type de contenu personnalisé correctement enregistré, avec le support explicite de la vignette dans sa propre déclaration également.

```
function monthème_type_prestataire() {
    register_post_type( 'prestataire', array(
        'label'        => 'Prestataires',
        'public'       => true,
        'show_in_rest' => true,
        'supports'     => array( 'title', 'editor', 'thumbnail' ),
        'menu_icon'    => 'dashicons-groups',
    ) );
}
add_action( 'init', 'monthème_type_prestataire' );
```

Le mot-clé `thumbnail` dans l'argument `supports` du type de contenu et la déclaration via `add_theme_support('post-thumbnails', array(...))` agissent ensemble : le premier autorise le type de contenu à porter une image mise en avant, le second restreint globalement cette fonctionnalité au niveau du thème pour éviter qu'elle n'apparaisse ailleurs.

## Afficher la vignette uniquement là où elle est pertinente

- Utiliser `has_post_thumbnail()` avant tout affichage, même sur le type de contenu concerné, au cas où l'image n'a pas été renseignée.
- Choisir une taille d'image dédiée avec `add_image_size()` plutôt que la taille par défaut, pour un rendu cohérent sur la grille d'archive.
- Ne pas dupliquer la condition sur d'autres types de contenu : la restriction faite en amont rend cette vérification déjà inutile ailleurs.

```
<?php if ( has_post_thumbnail() ) : ?>
    <?php the_post_thumbnail( 'fiche-prestataire' ); ?>
<?php endif; ?>
```

## Vérifier le résultat au bon endroit

La vérification la plus fiable ne se fait pas au rendu final, mais directement dans l'éditeur : ouvrir un article classique et confirmer que la métabox n'apparaît plus, puis ouvrir une fiche du type de contenu concerné et confirmer sa présence. Une erreur fréquente consiste à ne tester que le type de contenu concerné, sans vérifier que les autres en sont bien exclus.

> Un contrôle qui prend moins d'une minute mais évite bien des surprises : ouvrir un brouillon d'article standard juste après cette modification, pour confirmer que la métabox a bien disparu comme prévu.

## En résumé

Restreindre `post-thumbnails` à un type de contenu précis, via son second argument sous forme de tableau, offre un contrôle plus propre et plus fiable qu'une activation globale suivie d'un masquage visuel. Une déclaration correctement ciblée simplifie l'interface d'édition sans laisser subsister de fonctionnalité techniquement active là où elle n'a pas lieu d'être.
