D’après la documentation officielle du projet, @wordpress/env est décrit comme « un outil en ligne de commande qui simplifie la mise en place d’environnements de développement WordPress locaux, basés sur Docker ». Cette phrase résume bien ce que l’outil apporte : il ne remplace pas Docker, il en masque presque toute la configuration pour un cas d’usage précis, celui du développement WordPress.
Avant wp-env, monter un environnement local reproductible impliquait d’écrire soi-même un fichier docker-compose.yml, de choisir une image PHP compatible, de brancher MySQL, et de recâbler WP-CLI par-dessus. Ce travail se refaisait, avec de petites variations, sur chaque nouveau projet. Maintenu directement par l’équipe du cœur de WordPress, wp-env part du principe que ce travail devrait être fait une fois pour toutes et partagé par l’ensemble de l’écosystème.
Démarrer un environnement en une commande
L’installation ne nécessite qu’un accès à Docker déjà installé sur la machine et Node.js pour exécuter l’outil via npx, sans installation globale préalable :
npx @wordpress/env start
Cette seule commande, exécutée à la racine d’un dossier d’extension ou de thème, télécharge les images nécessaires, démarre un conteneur WordPress avec la dernière version stable, un conteneur MySQL, et monte automatiquement le dossier courant comme extension ou thème actif selon la présence d’un fichier style.css ou d’un en-tête de plugin détecté. Le site est ensuite accessible sur http://localhost:8888, avec des identifiants d’administration par défaut documentés (admin / password).
Le fichier .wp-env.json pour les cas moins simples

Pour un projet qui dépend de plusieurs extensions ou d’un thème additionnel, un fichier .wp-env.json à la racine du projet permet de déclarer ces dépendances sans quitter la logique « zéro configuration lourde » de l’outil :
{
"core": "WordPress/WordPress#trunk",
"phpVersion": "8.2",
"plugins": [
".",
"https://downloads.wordpress.org/plugin/query-monitor.zip"
],
"themes": [
"https://downloads.wordpress.org/theme/twentytwentyfour.zip"
],
"config": {
"WP_DEBUG": true,
"WP_DEBUG_LOG": true
}
}
Le champ core permet même de pointer vers une branche précise du dépôt officiel de WordPress, ce qui rend wp-env particulièrement utile pour tester une extension contre la version en développement du cœur, avant une sortie majeure.
WP-CLI directement intégré
Un environnement wp-env embarque WP-CLI sans installation additionnelle, accessible via la sous-commande dédiée :
npx @wordpress/env run cli wp plugin list
npx @wordpress/env run cli wp user create redacteur redacteur@example.com --role=editor
Cette intégration évite d’avoir à se connecter en SSH dans le conteneur pour exécuter une commande WP-CLI ponctuelle, un geste qui alourdit sensiblement les allers-retours pendant une session de débogage.
Ce que wp-env ne cherche pas à remplacer
Il serait exagéré de présenter wp-env comme une solution universelle. L’outil vise explicitement le développement local d’extensions et de thèmes, pas la reproduction fidèle d’un environnement de production avec son cache objet, son CDN ou sa configuration serveur spécifique. Pour un test de charge ou une validation de configuration Nginx, un environnement de préproduction plus proche de la production réelle reste indispensable ; wp-env sert avant tout à vérifier qu’un code fonctionne, pas à mesurer comment il se comporte sous trafic.
Comparer avec une configuration Docker manuelle
| Critère | wp-env | Docker Compose manuel |
|---|---|---|
| Temps de mise en place | Quelques minutes | Plusieurs heures la première fois |
| Contrôle fin de la configuration | Limité au fichier .wp-env.json | Total |
| Maintenance dans le temps | Assurée par l’équipe du cœur | À la charge de l’équipe projet |
| Adapté à la production | Non, usage local uniquement | Possible avec adaptation |
wp-env ne cherche pas à tout permettre : il vise le cas le plus fréquent, un développeur qui veut tester son code sans y passer sa matinée.
Nettoyer un environnement devenu inutile
Un environnement wp-env se supprime aussi simplement qu’il se crée, ce qui encourage à en recréer un neuf plutôt que de s’acharner à déboguer un état local devenu incohérent après plusieurs mois d’utilisation :
npx @wordpress/env destroy
En résumé
wp-env répond à un besoin précis et récurrent, celui d’un développeur qui veut tester une extension ou un thème sans configurer lui-même Docker à chaque nouveau projet. Son adoption par l’équipe du cœur de WordPress lui donne une longévité que peu d’outils communautaires équivalents peuvent garantir, mais son périmètre reste volontairement limité au développement local, loin des préoccupations d’un environnement de production sous charge réelle.