# Proposer vos tailles d’images dans l’éditeur avec image_size_names_choose

> Rendez vos tailles d'image personnalisées sélectionnables dans le bloc Image et la médiathèque, avec des libellés compréhensibles pour les rédacteurs.

- Auteur : Clément Hadrot
- Publié le : 2023-11-17
- Mis à jour le : 2023-11-17
- Catégorie : Tips
- URL : https://wpmoderne.dev.wordpress-developpement.fr/tips/tailles-images-editeur-image-size-names-choose/

## L’essentiel

- Un seul filtre pour afficher ses tailles dans l'interface
- Libellés lisibles plutôt que des noms techniques
- Compatible bloc Image et médiathèque classique

Une cliente qui gère un site de recettes de cuisine me demandait pourquoi, dans le bloc Image, elle ne pouvait choisir qu'entre « Miniature », « Moyenne », « Grande » et « Taille complète ». Le thème déclarait pourtant une taille `recette-carre` de 600 par 600 pixels, pensée justement pour les vignettes de recette. Le thème avait bien enregistré la taille avec `add_image_size()`, mais sans la rendre visible dans l'interface.

Cette étape supplémentaire, trop souvent oubliée, tient en un seul filtre : `image_size_names_choose`.

## Rappel : déclarer une taille ne suffit pas

La fonction `add_image_size()` crée bien le fichier physique lors de l'import ou de la régénération, mais elle ne l'ajoute pas au menu déroulant que voient les rédacteurs. Ce menu est peuplé séparément par le filtre `image_size_names_choose`, qui attend un tableau associatif `slug => libellé`.

```
add_action( 'after_setup_theme', function () {
    add_image_size( 'recette-carre', 600, 600, true );
} );

add_filter( 'image_size_names_choose', function ( $tailles ) {
    $tailles['recette-carre'] = __( 'Carré recette (600×600)', 'mon-theme' );
    return $tailles;
} );
```

## Où ce menu apparaît

Le filtre alimente à la fois le sélecteur de taille du bloc Image dans l'éditeur, la boîte de dialogue d'insertion de média classique, et l'attribut de taille disponible dans le widget Galerie. Une fois le filtre en place, la taille personnalisée apparaît immédiatement, sans régénération nécessaire pour la voir dans le menu (la régénération ne sert qu'à générer les fichiers).

> L'essentiel à retenir : Un seul filtre pour afficher ses tailles dans l'interface ; Libellés lisibles plutôt que des noms techniques ; Compatible bloc Image et médiathèque classique

## Choisir un libellé utile

Le piège classique est de recopier le nom technique du slug comme libellé : un rédacteur ne sait pas ce que signifie `recette-carre-600`. Un bon libellé indique l'usage plutôt que les dimensions brutes, ou combine les deux :

- `Vignette article (400×300)` plutôt que `vignette_article`.
- `Bannière page d'accueil (1600×500)` plutôt que `banniere_home`.
- Éviter les libellés trop longs : au-delà d'une trentaine de caractères, le menu déroulant tronque l'affichage sur certains navigateurs.

## Retirer les tailles inutiles du menu

Le même filtre permet aussi de nettoyer le menu des tailles historiques que plus personne n'utilise, en les retirant du tableau plutôt qu'en les ajoutant :

```
add_filter( 'image_size_names_choose', function ( $tailles ) {
    unset( $tailles['medium_large'] );
    return $tailles;
} );
```

Attention toutefois : retirer une taille du menu ne supprime pas les fichiers déjà générés à cette taille, ni les usages codés en dur dans le thème via `the_post_thumbnail( 'medium_large' )`.

## Cas des tailles enregistrées par une extension

Certaines extensions (WooCommerce en tête) déclarent leurs propres tailles d'image et gèrent parfois elles-mêmes leur affichage dans le menu. Avant d'ajouter une taille en double, une vérification rapide avec `wp eval 'print_r( wp_get_registered_image_subsizes() );'` en ligne de commande WP-CLI liste toutes les tailles déjà connues du site.

| Situation | Action |
| --- | --- |
| Taille déclarée mais absente du menu | Ajouter via image_size_names_choose |
| Taille historique inutilisée | Retirer du menu, garder la déclaration si des images l'utilisent encore |
| Taille dupliquée avec une extension | Vérifier avec wp_get_registered_image_subsizes() |

> Une taille d'image qui n'apparaît pas dans le menu du bloc Image n'est pas un bug de WordPress : c'est simplement une étape de configuration oubliée par l'intégrateur.

## En résumé

Trois lignes de filtre suffisent à transformer une taille d'image invisible en option claire pour les rédacteurs. C'est un des réglages les plus rentables en temps passé : quelques minutes d'intégration évitent des dizaines de messages de rédacteurs qui ne comprennent pas pourquoi leur image ne s'affiche pas comme prévu.
