Articles · 7 septembre 2026
Ajouter du code PHP à WordPress : les quatre endroits possibles, et lequel choisir
Écrire dans le functions.php du thème est presque toujours une erreur. Code Snippets, Code Engine, un thème enfant, les mu-plugins : ce qui survit à une mise à jour, ce qui disparaît, et comment revenir en arrière quand ça casse.
Tôt ou tard, on tombe sur « ajoutez cette ligne et c’est réglé ». Retirer la barre d’admin, supprimer une taille d’image, modifier le comportement d’une extension avec un filtre. Dix lignes à soi pèsent moins lourd qu’une extension de plus, et le site reste léger.
La question, c’est où les mettre. Au mauvais endroit, la prochaine mise à jour du thème efface tout. Il y a quatre endroits.
1. Ce qu’il ne faut pas faire : le functions.php du thème parent
Le plus connu, et le plus dangereux. Quand le thème se met à jour, ce fichier est remplacé et vos ajouts disparaissent sans laisser de trace. Et une faute de frappe suffit pour que le site entier passe au blanc, admin compris (dans ce cas, on supprime la ligne par FTP et tout revient).
Si c’est votre propre thème, écrit pour ce site et rien d’autre, allez-y. Sinon, une des trois options suivantes.
2. Code Snippets, le plus répandu
Code Snippets tourne sur plus d’un million de sites. On nomme chaque bout de code dans l’admin, on l’active ou le désactive d’un clic, et ça survit à un changement de thème. Un snippet qui contient une erreur est refusé à l’enregistrement, ce qui évite la plupart des pages blanches.
Dans le doute, c’est celui-là.
3. Code Engine, le nôtre
Code Engine part de la même idée, avec deux différences : on choisit quand chaque snippet s’exécute (partout, seulement côté public, seulement dans l’admin), et on gère au même endroit du PHP, du JavaScript et du CSS. C’est ce qu’on utilise nous-mêmes pour ajuster le comportement des extensions Meow Apps par filtre.
Entre les deux, c’est une affaire de goût. Un seul suffit, il n’y a aucune raison d’installer les deux.
4. Le functions.php d’un thème enfant
Si le code dépend vraiment du thème (il appelle ses hooks, il remplace un de ses gabarits), créez un thème enfant et écrivez dans son functions.php. La mise à jour du parent ne l’efface pas, et le code vit avec le thème.
Attention au revers : le jour où vous changez de thème, ce code « disparaît » aussi. Du code sans rapport avec le thème (tailles d’image, types de contenu, filtres sur d’autres extensions) placé dans un thème enfant, c’est le « cette fonction ne marche plus » de la prochaine refonte.
5. Les mu-plugins, pour les développeurs, le plus solide
Un fichier posé dans wp-content/mu-plugins/ est chargé par WordPress comme une extension obligatoire. Impossible de la désactiver depuis l’admin, aucune dépendance au thème ni aux autres extensions. C’est là qu’une agence met les réglages qui ne doivent jamais disparaître d’un site client.
<?php
// wp-content/mu-plugins/site-tweaks.php
add_filter( 'big_image_size_threshold', '__return_false' );
Pas d’interface dans l’admin. C’est le principe.
Le choix en quatre lignes
- Un site classique : Code Snippets ou Code Engine
- Un réglage propre au thème : le
functions.phpdu thème enfant - Un réglage qui ne doit jamais sauter, ou plusieurs sites à gérer :
mu-plugins - Le
functions.phpdu parent : seulement si le thème est le vôtre
Quand ça casse
Où que soit le code, une erreur de syntaxe PHP donne une page blanche. La marche arrière est toujours la même : par FTP ou le gestionnaire de fichiers de l’hébergeur, renommez le fichier que vous venez d’ajouter (ou le dossier de l’extension de snippets) pour le désactiver, revenez dans l’admin, et lisez la ligne fautive dans debug.log. La méthode complète est dans trouver l’origine d’une erreur.
Une dernière chose. Le code qu’une IA vous a écrit, ne le testez pas en production. En local, ou au minimum sur un site de préproduction. Dix lignes suffisent à faire tomber un site 🙂