Limitations
WordPress Playground has a few limitations that you should be aware of.
If you are a user
You can't access the Plugins or Themes Directory in the browser
The web version of WordPress does not support network connections, so the plugin directory in wp-admin is not available. However, you can still upload plugins and open them with "?plugin=coblocks" or a similar query string.
You can track the progress of adding network support in the browser at https://github.com/WordPress/wordpress-playground/issues/85.
When you refresh the page, you'll lose anything you did (unless you export it)
In the web version of WordPress Playground, all database changes and uploads are gone once the page is refreshed. Preserving them would be useful for courses, technical demos, even sharing a link to your changes.
Be sure to export your work before you close the page.
You can track the progress of support for persisting the changes at https://github.com/WordPress/wordpress-playground/issues/19
If you are a developer
Iframe quirks
WordPress is rendered in an iframe, which makes it hard to correctly handle target="_top"
in links. This means that clicking on <a target="_top">Click here</a>
may reload the main browser tab.
Also, JavaScript popup windows originating in the iframe may not be displayed in certain cases.
Pthreads Support
The WebAssembly version of PHP is built without pthreads support, which means you cannot use pcntl_
functions like pcntl_fork()
or pcntl_exec()
. Most of the time, you don't need them, but there are a few wp-cli
commands and a few corner-cases in PHPUnit tests that use them.
You can track the progress of adding pthreads support at https://github.com/WordPress/wordpress-playground/issues/347.
XDebug Support
XDebug is not supported in the WebAssembly version of PHP. You can track the progress of adding XDebug support at https://github.com/WordPress/wordpress-playground/issues/314.
Known unsupported PHP Functions
proc_open
popen('', 'w')
in thew
mode.popen('', 'r')
works fine.