WordPress Playground
Quand l'utiliser
- Créer un WordPress temporaire pour tester un plugin/thème sans installation complète.
- Exécuter ou itérer sur des Blueprints Playground (JSON) localement.
- Construire un snapshot reproductible d'un site pour le partager ou en CI.
- Basculer rapidement entre versions WP/PHP pour reproduire des problèmes.
- Déboguer du code plugin/thème avec Xdebug dans un Playground isolé.
Entrées requises
- Préparation de la machine hôte : Node.js ≥ 20.18,
npm/npx disponible.
- Chemin du projet à monter (
--auto-mount ou mapping de montage explicite).
- Version WP/PHP souhaitée (optionnel ; par défaut la dernière WP, PHP 8.3).
- Localisation/URL du Blueprint si exécution d'un blueprint.
- Préférence de port si 9400 est en conflit.
- Savoir si Xdebug est nécessaire.
Procédure
0) Garde-fous
- Les instances Playground sont éphémères et basées sur SQLite ; ne pointez jamais vers des données de production.
- Confirmez Node ≥ 20.18 (
node -v) avant d'exécuter la CLI.
- En cas de montage de code local, assurez-vous qu'il est exempt de secrets ; Playground copie les fichiers dans un système de fichiers en mémoire.
1) Lancement rapide local (auto-mount)
cd <plugin-or-theme-root>
npx @wp-playground/cli@latest server --auto-mount
- S'ouvre sur http://localhost:9400 par défaut. Détecte automatiquement le plugin/thème et l'installe.
- Ajoutez
--wp=<version> / --php=<version> selon les besoins.
- Pour les installations complètes classiques déjà présentes, ajoutez
--skip-wordpress-setup et montez l'arborescence entière.
2) Montages manuels ou multiples
- Utilisez
--mount=/host/path:/vfs/path (répétable) quand auto-mount est insuffisant (multi-plugin, mu-plugins, contenu personnalisé).
- Montez avant l'installation avec
--mount-before-install pour les flux d'amorçage de l'installateur.
- Référence :
references/cli-commands.md
3) Exécuter un Blueprint (serveur non nécessaire)
npx @wp-playground/cli@latest run-blueprint --blueprint=<file-or-url>
- À utiliser pour la configuration scriptée/validation en CI. Supporte les URLs distantes et les fichiers locaux.
- Autorisez les ressources regroupées dans les blueprints locaux avec
--blueprint-may-read-adjacent-files si nécessaire.
- Voir
references/blueprints.md pour la structure et les drapeaux courants.
4) Créer un snapshot pour le partage
npx @wp-playground/cli@latest build-snapshot --blueprint=<file> --outfile=./site.zip
- Produit un ZIP que vous pouvez charger dans Playground ou joindre aux rapports de bogue.
5) Débogage avec Xdebug
- Démarrez avec
--xdebug (ou --enable-xdebug selon la version de la CLI) pour exposer une clé IDE, puis connectez VS Code/PhpStorm au host/port affiché dans la sortie de la CLI.
- Combinez avec
--auto-mount pour le débogage plugin/thème.
- Checklist :
references/debugging.md
6) Basculement de versions
- Utilisez
--wp= pour épingler WP (ex. 6.9.0) et --php= pour tester la compatibilité.
- Si la fonctionnalité dépend de la branche Gutenberg trunk, préférez la dernière version WP plus le plugin si disponible ; les images Playground suivent WP stable plus Gutenberg inclus.
7) Flux basés sur le navigateur uniquement (sans CLI)
- Lancez des aperçus rapides avec des fragments URL ou des paramètres de requête :
- Fragment :
https://playground.wordpress.net/#<base64-or-json-blueprint>
- Requête :
https://playground.wordpress.net/?blueprint-url=<public-url-or-zip>
- Utilisez l'éditeur Blueprint en direct (playground.wordpress.net) pour créer des blueprints avec aide au schéma ; collez le JSON et copiez un lien partageable.
Vérification
- Vérifiez que le code monté est actif (plugin listé/actif ; thème sélectionné).
- Pour les blueprints/snapshots, relancez avec
--verbosity=debug pour confirmer l'exécution des étapes.
- Exécutez des tests critiques ciblés (ex.
wp plugin list dans le shell Playground via terminal navigateur s'il est exposé) ou un parcours UI.
Modes de défaillance / débogage
- CLI quitte en se plaignant de Node : passez à ≥ 20.18.
- Montage non appliqué : vérifiez le chemin, utilisez un chemin absolu, ajoutez
--verbosity=debug.
- Blueprint ne peut pas lire les ressources locales : ajoutez
--blueprint-may-read-adjacent-files.
- Port déjà utilisé :
--port=<free-port>.
- Interface lente/verrouillée : désactivez
--experimental-multi-worker si activé ; ou activez-le pour améliorer le débit sur les exécutions gourmandes en CPU.
Escalade
- Si des extensions PHP ou un accès natif à la BD sont requis, Playground peut être inadéquat ; revenir à la pile WP complète ou wp-env/Docker.
- Pour l'intégration basée sur le navigateur ou les spécificités des extensions VS Code, consultez la documentation en amont : https://wordpress.github.io/wordpress-playground/