MozaikAgency / wp-theme-starter

WordPress theme starter-kit, build tools included :smile:
MIT License
392 stars 70 forks source link

The Mozaik WordPress Theme Boilerplate

This is a WordPress theme starter-kit meant to offer a first-class developer experience.

Contents

Full Feature List

Important Prerequisites

Dev Environment

  1. Have node and npm installed on your system (node@5.0.0)
  2. Have gulp globally installed (gulp@^3.9.0)

Windows

On Windows you may need to do some of the following if you run into trouble when running npm install in this project:

Thanks to Ryanlanciaux

WordPress

  1. Read the WordPress theme development guidelines
  2. Understand the WordPress template hierarchy
  3. Understand the WordPress Loop
  4. Understand how WordPress helps with Data Validation/Sanitization
  5. Read up on the following WordPress core APIs:
  6. Understand when you should use a Custom Functionality Plugin instead of implementing functionality within a theme

JavaScript

  1. This project uses webpack to provide support for modular JS, read up on the functionality & tools it provides

CSS

  1. The boilerplate assumes you are using SCSS to write your styles and compiles to CSS using Libsass
  2. Autoprefixer is used for adding the correct vendor prefixes to the final generated CSS

Development Guidelines

Standard Theme Development Process

Setup

  1. Install WordPress and clear it of unnecessary default themes & plugins
  2. Clone/Download the contents of this repository into a directory in your WordPress wp-content/themes directory (eg: "my-theme_dev") this will be your "dev theme"
  3. Open the terminal and navigate to the dev theme, eg: cd wp-content/themes/<my-theme>_dev
  4. (Note: The next steps require nodejs @5.0.0 and gulpjs @^3.9.0)
  5. Run npm install to install all dev dependencies
  6. Change the project.config.js file with your new theme's configuration
  7. Run gulp build to generate the "built theme" for the first time
  8. Log in to the admin and enable the built theme (Note: The dev theme is not a valid theme, that's fine! Don't delete it or try to enable it!)
  9. Start Developing!

Development

  1. Run gulp to begin the dev build process that uses libsass, browser-sync and webpack
  2. Develop your theme in the /assets and /theme directories, the "built theme" will be generated by gulp
  3. Optional stuff:
    • use npm install --save <module(s)> or bower install --save <module(s)> to easily manage js dependencies, then use var <module> = require('<module>'); or import <module> from '<module>'; anywhere in your js files you want to use them
    • explore the /library directory in the dev theme for anything useful to your project.

Production

  1. Delete files you are not using from inside the /theme directory
  2. Add a screenshot.png
  3. Before deploying run gulp build to generate a production ready version of the built theme
  4. Deploy the built theme directory, not the dev directory

Reading Recommendations

  1. WordPress Developer Documentation
  2. We generally follow the WordPress PHP Coding Standards in our WP code
  3. The build process supports ES6+ JavaScript syntax by using babel.js to transpile ES6+ to ES5.

License

This Theme Boilerplate is licensed under the MIT license see license.txt.

FAQ

1. How do I use jQuery with wp-theme-starter ?

As mentioned above, wp-theme-starter uses webpack to handle concatenating, minifying and optimizing the javascript in the theme. Webpack, like Browserify and RequireJS, is a module loader for javascript and as such requires each module (file) to declare the dependencies it has within it. To use jQuery, or any other global library, in your webpack-ed js you have a couple of choices: