# Forcer un schéma de couleurs d’administration unique pour toute l’équipe

> Imposer une présentation cohérente de l'admin à tous les comptes d'un site client, pour que le support à distance repose sur des captures d'écran identiques.

- Auteur : Clément Hadrot
- Publié le : 2022-04-24
- Mis à jour le : 2022-04-24
- Catégorie : Tips
- URL : https://wpmoderne.dev.wordpress-developpement.fr/tips/forcer-schema-couleurs-admin-unique-equipe/

## L’essentiel

- Chaque utilisateur choisit librement son propre schéma par défaut
- get_user_option admin_color peut être filtré
- Utile avant tout pour le support technique à distance

Un client avec cinq comptes administrateurs différents nous a un jour envoyé une capture d'écran totalement méconnaissable, avec un schéma de couleurs sombre inversé qu'aucun de nos développeurs n'avait jamais configuré ni même vu auparavant sur ce site. Chaque utilisateur WordPress peut en effet choisir librement, dans son propre profil, un schéma de couleurs parmi huit propositions natives, ce qui complique sérieusement le support technique à distance : deux personnes décrivant le même écran ne voient tout simplement pas la même chose.

Pour une équipe qui veut garder une présentation cohérente, ou simplement éviter la confusion, il est possible de forcer un schéma unique pour tous les comptes, via le filtre `get_user_option_admin_color`.

## Le mécanisme de choix du schéma de couleurs

Le schéma de couleurs choisi par un utilisateur est stocké comme une option utilisateur classique, récupérée par WordPress via `get_user_option( 'admin_color', $user_id )`. Comme toute fonction de récupération d'option WordPress, elle passe par un filtre dynamique nommé selon le motif `get_user_option_{option}`, ici `get_user_option_admin_color`.

## Forcer un schéma pour tout le monde

> L'essentiel à retenir : Chaque utilisateur choisit librement son propre schéma par défaut ; get_user_option admin_color peut être filtré ; Utile avant tout pour le support technique à distance

```
function ag_forcer_schema_couleurs() {
    return 'modern';
}
add_filter( 'get_user_option_admin_color', 'ag_forcer_schema_couleurs' );
```

Ce filtre, aussi court soit-il, s'applique immédiatement à tous les comptes du site, y compris les nouveaux comptes créés ultérieurement, sans jamais modifier la valeur réellement enregistrée en base de données : chaque utilisateur retrouve son propre choix si le filtre est retiré plus tard.

## Retirer le sélecteur de l'écran de profil

Forcer la valeur ne suffit pas seul : sans intervention supplémentaire, le sélecteur reste visible dans l'écran de profil de chaque utilisateur, qui peut croire avoir changé quelque chose alors que le filtre l'ignore silencieusement. Mieux vaut masquer entièrement ce choix pour éviter la confusion :

```
function ag_masquer_selecteur_schema( $options ) {
    return array(); // aucun schéma proposé au choix
}
add_filter( 'get_user_option_admin_color', 'ag_forcer_schema_couleurs' );
add_action( 'admin_head-profile.php', function() {
    echo '<style>.user-admin-color-wrap { display: none; }</style>';
} );
```

La règle CSS masque simplement le bloc de sélection dans l'interface, ce qui reste une solution d'affichage plutôt qu'une suppression réelle de l'option côté serveur, largement suffisante pour cet usage.

## Les schémas natifs disponibles

| Identifiant | Nom affiché |
| --- | --- |
| `fresh` | Par défaut |
| `light` | Léger |
| `modern` | Moderne |
| `blue` | Bleu |
| `coffee` | Café |
| `ectoplasm` | Ectoplasme |
| `midnight` | Minuit |
| `ocean` | Océan |
| `sunrise` | Lever de soleil |

Le schéma `modern`, introduit avec WordPress 5.9, reste un choix pertinent en 2022 pour une équipe qui veut un rendu plus actuel que le schéma `fresh` par défaut, sans pour autant s'aventurer vers les teintes plus marquées comme `ectoplasm`.

## Pourquoi ce détail compte vraiment

- Deux personnes décrivant le même problème sur une capture d'écran identique gagnent un temps précieux en support.
- La documentation interne d'un projet, avec ses propres captures d'écran, reste valable dans le temps si le schéma ne change jamais d'un compte à l'autre.
- Un client qui découvre un schéma sombre par accident, sans savoir comment revenir en arrière, ouvre systématiquement un ticket de support évitable.

## Adapter la démarche à un schéma personnalisé de marque

Pour une agence qui souhaite aller plus loin qu'un simple choix parmi les huit schémas natifs, WordPress permet d'enregistrer un schéma entièrement personnalisé via `wp_admin_css_color()`, avec sa propre palette de couleurs, avant de le forcer exactement de la même manière :

```
function ag_enregistrer_schema_maison() {
    wp_admin_css_color(
        'agence-maison',
        'Agence Maison',
        get_stylesheet_directory_uri() . '/assets/css/admin-agence.css',
        array( '#1d2327', '#2c3338', '#2271b1', '#d63638' )
    );
}
add_action( 'admin_init', 'ag_enregistrer_schema_maison' );

function ag_forcer_schema_maison() {
    return 'agence-maison';
}
add_filter( 'get_user_option_admin_color', 'ag_forcer_schema_maison' );
```

Le tableau de couleurs fourni en dernier argument sert uniquement à l'aperçu miniature affiché dans l'écran de profil ; l'essentiel du rendu réel provient du fichier CSS référencé, qui doit reprendre les mêmes sélecteurs que les schémas natifs pour un résultat cohérent sur l'ensemble des écrans d'administration.

Cette option demande un peu plus de travail qu'un simple choix parmi la liste existante, mais elle permet d'aligner précisément les couleurs de l'administration sur la charte graphique du client, jusque dans les boutons et les liens actifs du menu.

> Ce filtre ne coûte rien à mettre en place et évite un nombre surprenant de tickets de support dont l'origine réelle n'est jamais un bug, mais un simple réglage personnel oublié.

## En résumé

Le filtre `get_user_option_admin_color` permet d'imposer un schéma de couleurs cohérent à toute une équipe en une seule fonction, sans toucher aux données stockées individuellement. Cette uniformisation reste indépendante du contenu affiché sur le tableau de bord lui-même, dont la personnalisation relève d'un sujet distinct déjà traité par ailleurs.
