There are a lot of great plugins I use for my everyday theme development. So it’s not to easy to pick just ten.
These are ten plugins that have really helped me in my theme development for both premium theme development and client work.
I’ve included both free and paid for plugins, most are free.
I hope that you’ll discover at least one that you didn’t know about before that will make your workflow better.
I hope you’ll find a gem in this list that help you workflow.
Right then, let’s get to it.
I’m surprised how many people don’t know and use Query monitor already. It must be my most used plugin, installed on every site I use. I really wouldn’t be without it. Here’s why.
It catches errors. Instead of breaking your site, it will catch the error so you can see it from the admin bar.
As well as errors it will show you warnings and slow queries, so you can make sure your theme is error and warning free.
For example, on the current theme I’m developing, I got to see this warning straight away “call_user_func_array() expects parameter 1 to be a valid callback” without having to check the error log.
It shows you slow queries, so you can make sure that you theme isn’t going to run slowly.
It gives you info about your install at a glance, php version, mysql version, WordPress version etc.
It shows you all text domains, so you can make sure you haven’t misspelled any, or left any over from a code snippet.
If you don’t know about Query Monitor, I’m convinced you’re going to find it really useful.
WP Pusher is a new one to my repertoire, but one that is proving to be very useful. It’s one that most still don’t know about.
A common issue for me, is how to keep my remote site’s up to date with my local dev environment. I’ve tried all sorts of methods looking for a ideal way to do it. WP Pusher is great for this.
I imagine most developers are already keeping plugin and theme code in a git repo, with WP Pusher you can pull in your plugin from your git repo. So I use this as a way to keep my demo site’s plugins and themes up to date with my master branch. If you make themes for clients, consider using WP Pusher to push changes to your client sites. This is something I do when developing a client’s theme locally and want to push it to the client’s remote site.
It’s a paid plugin, but it’s good for authors to get paid for their work, don’t you think? :)
Migrate DB Pro
Another issue I have is how to keep a remote and local database in sync. Again, I’ve experimented with a lot of different methods, Migrate DB Pro is my favorite.
It’s easy to set up and you can push and pull both ways. I’ve tried various solutions, but I’ve found them buggy or incomplete. Migrate DB Pro, is the most reliable and easiest way I have found to keep up to date.
What’s really nice about Migrate DB Pro is the command line tools, allowing push and pull to be done from the terminal, or, a build script ( think NPM, gulp, grunt ). Which is a great addition to my workflow. I love being able to do everything from my editor.
It also has a addon for pushing and pulling media.
If you work locally and need to sync your database to the remote, Migrate DB Pro is a really great option.
Enable Media Replace
This is a small little plugin that I have found to be really useful when creating a page for a theme either for a demo or clients site.
What I find is I’m often trying out several images before sticking to one. I could just upload and delete to keep my media library clean but Enable Media Replace is more convenient.
It also doesn’t work too well when I want to replace an image that’s been used multiple times. If I upload a new ones, I’m going to have to go through and update them all.
For example, say I have “page-header.jpeg” image and I want to try a different image, apply a overlay to the image, adjust the colors or something.
With media replace it gives you a replace button in the media library so you can just replace that file, you can keep the same name or update it to the new name.
Also at the end of the project I like to optimise my images. With this plugin I can easily swop out the optimised version.
I’m often changing the thumbnail sizes when creating themes. I don’t want my theme creating excessive images and clogging up the server. So I try to combine a few. This means that I’ll be changing the sizes sometimes. Or I’ll need to add a new size for a new element.
Say I need a square size for a new portfolio layout, instead of uploading all the pictures again with “Regenerate Thumbnails” I can regenerate the sizes for all the images already in the media library.
Duplicator will duplicate a subsite. The reason I’ve included this is because I find it really useful for testing and support. So I have a multisite on my server a subsite that I use as a template. It will have a basic install of my theme, required plugin and the demo content installed.
When I need to test things, I can duplicate that base subsite, play around with it then delete it when I’ve finished testing.
For example, I’ll need to investigate an issue for a customer. I just duplicate the template subsite, do my testing, then delete it once I’m finished.
I use this to reset a WordPress database or table. I don’t have a specific use case for this, it’s just something that tends to come up for all sorts of reasons. The WordPress Reset plugin saves you having to open up PHPMyAdmin ( or whatever you use! ) and allows me to do it from the admin. There are a few plugins that do a similar thing but this is my go to because it’s the only one I’ve found that supports multisite.
I’ve been using Kirki in my themes for some time. It allows for very easy use of the theme customizer for adding options for your theme.
It’s in the WordPress repo so you don’t need to bundle it with your themes. Think of it like ACF for the customizer.
Give your customers and clients a really easy way to make adjustments to your theme without building out an options panel or including a heavy framework.
Using the customizer means that your end users can see the changes they make live.
Kirki is a wrapper for the WP customizer, giving you extra field types and allowing you to easily create options like a color picker where you can allow your end users to change a background color and they can see the change of color live.
You have a bunch of useful field types you can use, even a WPEditor, repeatable fields, background field.
If you don’t know about it, it’s really worth investigating for use in your next theme when you need to allow for options. I use it wherever I can and use it over metaboxes where I can.
Easy Digital Downloads
I’ve included this because it’s such a great plugin for selling themes. It’s designed for digital products, it creates licenses and even manages updates. This is has got the be the easiest way to manage theme sales on your own website.
I’ve only just discovered this plugin, but I’ve already found I’m using it a lot in my theme development and client work. You know how annoying it is that when you want to update a theme, you have to either open up FTP or delete then install the theme on the site.
Well the nice thing about catch updater is that it allows you to update a theme from the theme installer.
So you have a updated version of a theme, maybe you want to update the theme on your client’s site, your customer’s site or on your demo site and haven’t got access to a auto updater.
Use catch updater.
One caveat, you can only update to another version number, you can’t replace a theme with the same version number, that’s not going to happen often of cause. But when it does, you can’t do that.
I could also see this being useful for authors that want to keep things simple and not use a update system to make updates easier for customers to update manually.
THE THEME DEVELOPERS HANDBOOK
An eBook that covers everything I know about creating maintainable, secure and easy to use themes.