I manage all my WordPress development with git. It’s a pretty standard workflow for small teams; We have a staging server and a live server. We make development changes on our local machines, do a push to staging, then a push to live. (PHP solution below)
The Issue With Minor Updates
When WordPress rolls out minor updates (3.9.x, 4.2.x, etc…), these are important to have automatically installed because they may contain urgent security patches. By default, WordPress is setup to install these. The problem with this and version control is that these changes will be automatic on your live server, but not on your staging server, or local system. So if your main repo has an older minor version, then your live server will auto-update every time you push changes live. Why does WordPress not update minor version automatically in your development environment? Because if WordPress detects a .git, .svn, .gh, or .bzr in your WordPress directory, it won’t run minor version updates! Here is the comment written next to this check:
The underlying assumption is that if you are using version control *anywhere*, then you should be making decisions for how things get updated.
I like this paradigm of running updates, personally, but we still need a way to get minor updates into our latest commits. Here’s what I do:
Create a file in your main directory called “force-update.php”
Put this code in that file:
//This filter prevents version control check by Wordpress
Since I work in marketing, I cannot tell you how much mailing lists are an underrated goldmine. If you haven’t had the time to setup a more robust mailing program like Mailchimp, you should at least start collecting readers’ emails. They love your content, and they want you to stay in touch. Jetpack’s subscription feature adds a widget to your widget library so users can subscribe to your blog by email. The plugin uses WordPress.com’s subscription system, so your end user will see a lot of WordPress branding, but in the end you can curate a list of all their email addresses!
Favicons and Apple touch icons are a necessary vanity. I don’t particularly enjoy putting these together since I’m not much of a designer, but Jetpack’s Site Icon feature makes it much easier. Upload an image (maybe just your logo?), crop it with the familiar WordPress image editor, and bam! Done! It generates all the necessary icon formats and puts them in
for you. Note: It doesn’t appear this module renders an .ico format, which is necessary if you want IE<11 support.
Markdown is clean, universal, and pretty. Haven’t heard of it? Check it out! The Markdown module will allow you write posts in markdown and process it into clean HTML Markup. And just as expected, you can mix your markdown with HTML, Shortcode, and inline styles. This feature doesn’t have any settings, but I recommend turning off the Visual Editor under Your Profile before using it.
Another reason I really like this plugin is that if you deactivate it, your website won’t start spewing out markdown. This is because the plugin stores a markdown copy, and a formatted copy (in the post_content_formatted column). This is also great for performance, so it doesn’t take a hit every time you load a page.
+ WP-Markdown: For users who like to preview their markdown while typing.
+ Markdown on Save Improved: This is the same as the Jetpack plugin, bet it’s officially deprecated. Only use this if you’re avoiding Jetpack and need an alternative.
Jetpack is a WordPress plugin that comes loaded with nifty features and tools. It’s essentially a collection of tools made by the WordPress team (Some features began as individual plugins). If you have used a WordPress.com blog, you may have noticed Jetpack features are included by default. For hosted WordPress sites, you can find it in the plugin directory.
Jetpack comes with features referred to as modules. Modules can be configured through the Jetpack Settings page. There is a laundry list of modules that are all outlined on the official site.
This list below will grow as I add more information about each module. This serves as review and technical reference for each Jetpack module. I will cover which ones I recommend, a few pros and cons, and finally present some alternatives for each if necessary. This list will grow as I add more content.