Once you create your new site, feel free to replace this Readme with your own, or just append your info here.
====================
This is a Git-friendly foundation and workflow for quickly creating and managing new WordPress sites, assembled by Justin Ruckman of Priceless Misc, and derivative of Mark Jarquith's WordPress Skeleton.
It includes a copy of the latest default theme for use as a control variable and emergency fallback during development and testing, plus a handful of commonly-installed plugins:
- Akismet - for spam
- All-In-One SEO Pack - for tweaking page titles/descriptions as displayed on search engines, regardless of theme used
- EWWW Image Optimizer - for automatically optimizing images beyond what WordPress does internally (good for faster speed and high GTMetrix, YSlow, etc scores)
- GTMetrix for WordPress - for optimizing and monitoring site performance, includes built-in support for managing CloudFlare
- Hide Update Reminder Message - for disabling the constant update reminders, useful when handing sites over to clients so they aren't bothered by upgrade alerts, or tempted to upgrade without consulting with you first
- Mobble - for easy device, browser, and individual page detection for use in CSS
- W3 Total Cache - for, like, caching
- WordPress Importer - for importing WP export files
- WP Migrate DB Pro - this requires a license, but it's hands-down the best way to keep WP databases in sync
- WP Typography - for automatically applying proper em dashes, smart quotes, elipses, etc.
A default database is available upon request with a number of baseline configurations.
I'll update the WordPress version when I feel it's ready for production. Included plugins will also be updated, and from time to time, likely swapped out alltogether.
- The core WordPress code lives in
/wp/
for easy management away from your custom content. - The
/content/
directory in the root overrides the default/wp-content/
folder. - A
local-config-sample.php
file which you can use to create alocal-config.php
. This file will be ignored by Git, and any settings specificed will automatically override the corresponding settings in the defaultwp-config.php
, allowing you to maintain separate configurations on your development and production environments.
-
Create a new repo on your hosting service of choice (Github, Bitbucket, etc) with your
NEW_PROJECT_NAME
-
On your local machine, in the directory where you keep your code, execute the following, replacing
NEW_PROJECT_NAME
w/ your desired destination folder:git clone --origin wp-boiler --depth 1 [email protected]:pricelessmisc/wp-boiler.git NEW_PROJECT_NAME
--origin wp-boiler
renamesorigin
towp-boiler
to keeporigin
free for your own use (and give you the flexibility to pull changes fromwp-boiler
in the future if you like), and--depth 1
makes sure you're just adding the most recent commit of this framework to your new project, keeping it free of this project's revision history. -
cd NEW_PROJECT_NAME
-
git remote add origin ssh://[email protected]/usernname/NEW_PROJECT_NAME.git
-
git rebase --root
This resets your
HEAD
to its current position, basically telling your new Git repo to forget about its past life before it came to you, except for the details that matter, like what files to ignore, and where to fetch new WordPress submodule updates from. -
git push --set-upstream origin master
This sends your new repo to your hosting service, and sets it to track your host as its origin master.
-
Create a Git alias like this:
wp = "!f() { git clone --origin source --depth 1 [email protected]:pricelessmisc/wp-boiler.git $1 && cd $1 && git remote add origin ssh://YOU@YOUR_HOST.COM/YOUR_USER/$1.git && git rebase --root && git push --set-upstream origin master; }; f"
-
Make sure you already have a new repo setup with your
NEW_PROJECT_NAME
on your hosting service of choice (Github, Bitbucket, etc) -
Enter
git wp NEW_PROJECT_NAME
and let the magic happen
I made this for myself, and for my developers at Priceless Misc, to simplify the process of creating and managing new WordPress sites via Git. Feel free to use this however you like, and keep me updated if you make any cool changes.