Vous souhaitez personnaliser l’apparence du back office de WordPress ?
Ce tutoriel vous montrera comment créer une feuille de styles CSS qui s’appliquera directement dans votre panneau d’administration pour un CMS 100% sur-mesure.
Étape n°1 – Ajout d’une fonction PHP
À l’aide de votre client FTP favori, ouvrez le fichier functions.php de votre thème enfant, pour que votre code survive aux mises à jour du thème, puis insérez la fonction suivante :
Le crochet admin_enqueue_scripts ne se déclenche que dans l’administration. La fonction wp_enqueue_style() y charge le fichier admin.css du dossier css de votre thème enfant, dont get_stylesheet_directory_uri() donne l’adresse. Le numéro de version, tiré de la date de modification du fichier, oblige le navigateur à recharger la feuille après chaque changement. Il vous faut donc créer ce fichier à l’aide de votre éditeur de texte favori – Notepad++, Visual Studio Code, etc.
Vous préférez une petite extension, comme un plugin de fonctions globales (mu-plugin) ? Placez alors admin.css à côté de son fichier PHP, puis remplacez get_stylesheet_directory() . '/css/admin.css' par plugin_dir_path( __FILE__ ) . 'admin.css' et get_stylesheet_directory_uri() . '/css/admin.css' par plugins_url( 'admin.css', __FILE__ ).
Étape n°2 – Création d’une feuille de styles CSS
Placez donc ce fichier dans un dossier /css du répertoire de votre thème enfant – bien que vous puissiez également le placer à la racine du thème en modifiant le chemin aux deux endroits où il figure dans le code.
Pour composer votre feuille, il nous faut identifier les règles à insérer pour qu’elles surpassent les styles par défaut.
Le plus commode consiste à utiliser les outils de développement de votre navigateur, généralement accessibles via la touche F12 : ils permettent d’inspecter chaque élément du back office pour voir les sélecteurs CSS et les règles qui s’y appliquent, et de tester vos modifications en direct avant de les reporter dans votre fichier.
Vous pouvez par exemple modifier la couleur des liens qui donne tout de suite une nouvelle donne visuelle au back office.
Cet exemple colore en violet les liens de la zone principale des écrans d’administration, sans toucher au menu latéral :
N’oubliez pas de sauvegarder votre fichier CSS pour appliquer les changements.
Si vous voulez seulement changer les couleurs du menu latéral et de la barre d’administration, le réglage Jeu de couleurs de l’administration de Comptes > Profil propose déjà plusieurs palettes, sans code, pour votre compte.
Styler le contenu de l’éditeur de blocs
Votre feuille admin.css s’applique aussi à l’interface de l’éditeur de blocs (barre d’outils, panneaux latéraux), mais pas au contenu que vous rédigez : depuis WordPress 7.1, celui-ci est toujours affiché dans un cadre séparé (iframe), qui ne reçoit pas cette feuille. Seule exception, par compatibilité : une feuille qui contient un sélecteur .editor-styles-wrapper ou .wp-block y est recopiée, avec un avertissement dans la console du navigateur.
Pour mettre en forme ce contenu, ajoutez plutôt une feuille dédiée avec la fonction add_editor_style(), toujours dans le fichier functions.php de votre thème enfant :
Créez ensuite le fichier editor.css dans le même dossier css : WordPress l’applique à la zone de contenu de l’éditeur. La ligne add_theme_support( 'editor-styles' ) est indispensable avec un thème classique, un thème à blocs activant ce support automatiquement. Enfin, pour une feuille réservée à l’interface de l’éditeur, sans effet sur les autres écrans de l’administration, utilisez le crochet enqueue_block_editor_assets à la place de admin_enqueue_scripts.
Cette technique est similaire aux tutoriels concernant l’insertion d’un logo personnalisé dans la zone de connexion ou encore l’ajout d’icônes à vos contenus personnalisés. Faites-en bon usage !
Pour personnaliser encore le back-office, voyez comment modifier le pied de page de l’administration.
30 réponses
il est mieux et plus universel d’utiliser `get_stylesheet_directory_uri()` (au lieu de get_template_directory_uri) pour couvrir l’utilisation éventuelle d’un thème enfant
Tout à fait !
Bonjour Aurélien
Je viens de lire et mettre en pratique ce post.
C’est plus que parfait.
Cet article, sauf erreur de ma part, ne concerne que le rôle Administrateur.
J’ai créé un rôle « Ouvreur » avec un plug et je voudrais bien que toutes mes modifications du back office ne concerne que ce rôle.
Question : que dois je mettre dans le function.php pour que le fichier css ne concerne que le rôle ouvreur.
Je ne connais rien en prog et je fais tout en piquant des bouts de lignes de commande sur la toile.
Si tu pouvais m’aider un peu, cela serait nickel.
Merci
Hello,
il n’y aucune restriction de rôle / capacité dans le tutoriel. Si tu vérifies dans la source, vois-tu la CSS ?
Là ça dois marcher bien entendu, pour l’instant j’ai hacké mes styles dans wp-admin.min.css, j’y reviendrais.
Merci Aurélien.
9a ne marche pas pour moi sous WP 4.3 avec un thème enfant (d’Enfold), pas d’appel à la feuille de style dans le … snif :-((
Dans le head… sorry
Et avec un get stylesheet directory uri ?
Merci pour ce truc! Simple et efficace.
Bonjour,
faut-il obligatoirement utiliser la propriété !important quand on utilise un thème enfant ?
Non en aucune manière.
Bonjour, j’ai suivi ce tuto mais je n’ai plus accés à mon site, j’ai maintenant j’ai une page blanche.
Sans doute une erreur de code. Il faut intervenir directement depuis le client FTP pour éviter ce type d’erreur… supprimez les lignes insérées pour revenir à l’état initial.
Wesh aurelien,
alors c’est quand que tu passe au ondar show
pour handidicap handi pas cap ?
Bonjour,
Je suis en train de tester cette technique sur un theme enfant, mais il ne lit pas la feuille css. Est ce normal? Dois-je ajouter d’autres lignes de code?
Oui il faut utiliser la fonction get_stylesheet_directory_uri à la place de get_template_directory_uri qui est prévue pour les thèmes enfants. Théoriquement, cela devrait fonctionner.
bonjour mes pages ne sont pas liées à mes catégories comment peut on faire. De plus, lorsque je poste un article écris dans ma pagination de thème il n’y a pas de possibilités de hashtag… comment faire je suis perdu, j ai le thème megazine
Hum je pense que vous mélangez de multiples concepts… je vous invite à poser vos questions sur le forum de WordPress francophone.
Je souhaite savoir s’il est possible d’ajouter différentes feuilles de style( CSS) pour les différents navigateurs (IE ,Moz,safari..) sous wordpress ? ( thème twenty-ten)
j’ai des gros probleme d’incompatibilité , » je galerrr grave !:p »
merci .
cdt.
Généralement, les bugs surviennent sous IE… c’est pour cela que l’on utilise parfois des CSS dédié. Plus d’infos ici : http://en.wikipedia.org/wiki/Conditional_comment
Pour les autres, tu ne dois pas avoir de grosses différences. Si c’est le cas, ton CSS est pas mal codé.
Bonjour,
Je souhaiterais, non pas changer le CSS de tout mon site, mais uniquement celui d’une page, qui me servirait de page d’accueil. Il ne s’agirait pas de changer des couleurs ou ce genre de choses, mais de faire une mise en page en positionnant 9 blocs (3 blocs par ligne, sur 3 lignes donc), contenant chacun soit une image, soit un bouton facebook, soit un player mp3.
J’arrive très bien à le faire en installant tout ça dans un tableau, mais il paraît que ce n’est pas bien de passer par cette méthode.
Est-ce faisable de rajouter toutes ces infos dans ma feuille de style WP ?
Merci pour votre aide !
Marie
Bonjour @Marie , en effet les tableaux sont de moins en moins de bonnes pratiques en html/css. Pour faire le design en bloc, je te conseille le framework css 960gs. Il permet de quadriller et disposer tes blocs sur une grille avec des « height » augmentant suivant la classe la grille. Par exemple, pour une grille de 12, les classes grid_3 (vide) + grid_6 (logo par exemple) + grid_3(vide aussi) permettrait de centrer un logo. Le site : http://960.gs/
Nickel ! Je me demande pourquoi le CSS du front et du back est séparé et que l’on soit obligé de passer par une function pour avoir droit au CSS ? Bref, ça fonctionne parfaitement, comme d’hab. Merci 🙂
Ben parce que le contraire serait surprenant ! 🙂
Bonjour,
Puisqu’on parle des css du backoffice.
Est-ce qu’il y a une technique pour différencier les styles en fonction du type de contenu (sur des custom Type).
Je parle ici des css du fichier editor-style.css et non de l’apparence global du BO.
Merci.
Je dirais oui mais je n’ai pas testé ce type de demande… donc à voir !
Ce serait sympa de nous mettre quelques exemples téléchargeables qui nous serviraient de base de travail et que l’on pourrait modifier à notre guise..
Je manque sacrément de temps ces jours-ci… Je vais voir ce que je peux faire. 🙂
Eventuellement, je peux lister les grandes classes CSS du back-end dans un autre tuto en corrélation avec celui-ci.
Qu’en penses-tu Aurélien ?
Good idea !