WordPress boilerplate based-on Bedrock by Roots.
This package is auto-updated.
Last update: 2022-01-22 15:39:29 UTC
This project aims to provide complete solution for WordPress development and deployment to heroku, even though it isn't completed just yet. 😬
Inspired by wordpress-heroku by Phillip Heuer and based on the exact same boilerplate of Bedrock, this project will give you better experiences while developing your very own WordPress themes and plugins that easily deployed to heroku.
- Integrated Unit and end-to-end testing
- Custom heroku buildpack
- Automated changelog generator
- Better assets compilation
- Easily create archive that ready to distribute to WordPress themes or plugins directory
- Thoughts? let me know 😁
Using this button you can deploy a new instance of WordPress. All required extensions will be deployed automatically. This also works if you fork your own project to work on your site.
$ composer create-project feryardiant/wpdev [project-folder]
Create new database through PHPMyAdmin or from CLI
$ mysql -u[username] -p -e 'create database <database-name>'
.env file to suit your local setup, described here, also don't forget to set the
url key on
wp-cli.local.yml file as well. Once you're done, let's install WordPress core with the following command:
# Please consult to the official documentation for additional option you might needed for the setup # See: https://developer.wordpress.org/cli/commands/core/install/ $ vendor/bin/wp core install # Or you can simply run the following sortcut $ composer wp:install
Please make sure to configure your HTTP server'
document root to
gulp for almost all development workflow in this project, not only for compiling
scss files, minify images and compressing
js, but also to run development server. Once you're done with installation process above, please install the development dependencies through
To start the development server you can simply run command below:
# yarn global add glup-cli or npm -g install gulp-cli, in case you don't have one $ gulp
The gulp default task will fire up PHP Developent Server, start BrowserSync on port
3000 and watch the changes you made. That way, all you need to do is open your web browser and type
http://localhost:3000 on the address bar, open the project on your favorite code editor or IDE and start working.
All the changes you've made will be automatically linted and compiled, once it done BrowserSync will reload the browser for you.
Since this project is based on Bedrock, the project directory structure is pretty much similar, but with some tweaks.
- bin directory : Consists of all buildpack executables only, feel free to delete this directory once you've cloned this project or install it on your local machine,
- config directory : Consists of all build utilities and configuration files, including all the scripts you'd be using on all environment,
- public directory : The server document root directory,
- packages directory : The Themes and Plugins development directory of your project,
- tests directory : Testing directory, obviously.
├── bin ├── config │ ├── environments │ └── heroku ├── public │ ├── app │ └── wp ├── packages ├── resources └── tests ├── e2e ├── stubs └── unit
gulp scripts will autoatically scan any sub-directories under
themes and generate all the required
gulp tasks if the sub-directory meets the following structures:
<dirname> ├── assets │ ├── img │ ├── js │ └── scss └── languages
Once you've create
<dirname> above inside
themes directory, you'll see similar gulp tasks as following:
$ gulp -T ├── theme-plugin:php ├── theme-plugin:zip ├─┬ theme-plugin:build │ └─┬ <parallel> │ └── theme-plugin:php ├── theme:php ├── theme:img ├── theme:css ├── theme:js ├── theme:zip ├─┬ theme:build │ └─┬ <parallel> │ ├── theme:css │ ├── theme:img │ ├── theme:js │ └── theme:php ├── theme-child:php ├── theme-child:zip ├─┬ theme-child:build │ └─┬ <parallel> │ └── theme-child:php ├─┬ zip │ └─┬ <series> │ ├── theme-plugin:zip │ ├── theme:zip │ └── theme-child:zip ├─┬ build │ └─┬ <parallel> │ ├── theme-child:php │ ├── theme-plugin:php │ ├── theme:css │ ├── theme:img │ ├── theme:js │ └── theme:php ├── e2e ├── release └── default
<dirname>:buildtask will execute all task under
<dirname>namespace, except for
*:jswill only available if you have
buildtask will combine all
*:buildtasks on each namespace.
ziptask will combine all
*:ziptasks on each namespace.
releasetask will run
ziptask and bump version number of this project.
- WordPress - GPLv2 License
- Bedrock - MIT License
- Underscores - GPLv2 License
- Bulma - MIT License
- Gulp and its plugins
(c) 2019 Fery Wardiyanto - MIT license.