├── composer.json # → Manage versions of WordPress, plugins & dependencies ├── config # → WordPress configuration files │ ├── application.php # → Primary WP config file (wp-config.php equivalent) │ └── environments # → Environment specific configs │ ├── development.php # → Development config │ ├── staging.php # → Staging config ├── vendor # → Composer packages (never edit) └── web # → Web root (vhost document root) ├── app # → wp-content equivalent │ ├── mu-plugins # → Must use plugins │ ├── plugins # → Plugins │ ├── themes # → Themes │ └── uploads # → Uploads ├── wp-config.php # → Required by WP (never edit) ├── index.php # → WordPress view bootstrapper └── wp # → WordPress core (never edit)
The organization of Bedrock is similar to putting WordPress in its own subdirectory but with some improvements.
- In order not to expose sensitive files in the webroot, Bedrock moves what's required into a
web/directory including the vendor'd
wp/source, and the
wp-contenthas been named
appto better reflect its contents. It contains application code and not just "static content". It also matches up with other frameworks such as Symfony and Rails.
wp-config.phpremains in the
web/because it's required by WP, but it only acts as a loader. The actual configuration files have been moved to
config/for better separation.
vendor/is where the Composer managed dependencies are installed to.
wp/is where the WordPress core lives. It's also managed by Composer but can't be put under
vendordue to WP limitations.