Tools for WordPress projects development

After getting into developing WordPress-based web applications and sites, the first thing I did was to find as many dev-useful software as possible. Tools save you great amount of time when you work on your projects. Proficiency in working with them usually tell apart the professional programmers from the amateur ones. I knew WordPress ecosystem is huge (>23% of sites) but its wealth of dev tools surprised me pleasantly. Here is a list of tools/plugins/software I use during building a standard WordPress theme or plugin.

1. Debugging

Query Monitor

Query Monitor adds page generation and request stats directly into WP Toolbar, including generation time, memory usage, database query time and number of DB queries. In addition to that, it lists these things:

  • Specific DB queries filterable by type (SELECT, INSERT…), caller (function issuing the query), component (a plugin, theme or core) and by time taken to run the query in database.
  • Request details: URI, request variables (GET or POST), matched rewrite rule, queried object.
  • If request is going to front-end: which template file was rendered (single.php, etc), activated theme name, CSS classes of body HTML element.
  • If request is going to back-end: which admin screen was requested with some more info.
  • List of enqueued styles and scripts (.css and .js files) with their unique identifier ($handle), absolute URL path to their location on the server, list of their dependencies and their versions.
  • WordPress hooks fired during the request life cycle filterable by logical groups (admin, after, add, etc…) and callbacks attached to the hooks filterable by components (theme, plugin, core, etc).
  • HTTP requests fired during page generation with their URL endpoints, call stacks, time to complete and some more.
  • Transient Sets with information such as key, expiration, call stack and from which component it is coming.
  • Environment stats: PHP version, user:group of PHP process, memory_limit, error_reporting, database driver and others.
  • List of WordPress Conditional Tags triggered during page rendering.
Figure 1: Query Monitor showing stats
Figure 1: Query Monitor showing stats

As you can see, this is one of the most powerful and informative plugins a WordPress developer can use. It is free of charge, actively developed on GitHub and perfectly safe to use.

Following plugins extend Query Monitor, adding new functionality and collected data.

Debug Bar Console

Debug Bar Console enables you to write and run snippets of PHP code directly from Query Monitor’s interface on any page whether on front-end or back-end of your WordPress website. The best thing about it is that the PHP code is run from within WordPress context, meaning all WordPress’, theme’s or plugin’s global functions and variables are present there.

What is more, you can execute SQL queries as well. Good for quick SELECT-ing data from the database.

Debug Bar Extender

Adds an option to profile WordPress loading process. I use xhprof instead which is truly awesome. I can finally see which part of the code — a plugin or a function in functions.php — is decreasing page loading performance.

Debug Bar Cron

Nice Query Monitor’s extension showing scheduled events (“cron jobs”) with their interval, arguments and hooks from which they are scheduled.

I know it’s a lot of plugins to install manually. Fortunately, a plugin ruling them all can be used to download all the aforementioned ones easily. Developed by Automattic.

Rewrite Rules Inspector

Handy plugin listing all of your site’s active rewrite rules.

Figure 2: Rewrite Rules Inspector listing rewrite rules
Figure 2: Rewrite Rules Inspector listing rewrite rules

2. WP-CLI

WP-CLI is a command line tool giving WordPress developers basically unlimited power over their WordPress-powered websites. Thanks to WP-CLI, you can manage:

  • plugins
  • user capabilites
  • comments
  • database
  • import/export
  • rewrite rules
  • cache
  • and much more…

all from the command line. No more /wp-admin and clicking through the settings. I love it!

Figure 3:  Using WP-CLI to update a plugin.
Figure 3: Using WP-CLI to update a plugin

If you don’t use any of the tools mentioned in this article, at least give WP-CLI a try. Believe me, you’ll be in bliss.

3. Theme/Plugin/Widget testing

WordPress Beta Tester

WordPress Beta Tester will keep your WordPress installation updated to the latest x.x.x point release. Useful for testing if everyting works before the new version gets into the mainstream release.

Monster Widget

Widget that displays all available widgets automatically. Good if you want to test how a theme renders different widgets without having to manually place all of them in a sidebar.

User Switching

Created by Query Monitor’s developer John Blackbourn, this plugin enables you to quickly switch between different users, without having to log out/log in. Good for testing user capabilities and roles.

Theme Test Drive

Cool plugin allowing you to use another theme while visitors see the original one.

VIP Scanner and Theme Check

Plugins which perform a scan over your theme looking for general problems and errors such as incomplete theme description, invalid use of hooks, etc. They show a nice green “Passed” if everything is OK; somewhat reassuring.

4. Database tools

Regenerate Thumbnails

If you modify thumbnail sizes, you need to recreate the thumbnails from scratch. This is where Regenerate Thumbnails excels.

I also found it useful when thumbnails became somehow corrupted on one of my client’s website. Just a click and everything is back to normal.

Velvet Blues Update URLs

Have you had a situation in which you moved the website from one URL to another one? For example, I moved to https recently (http://lamosty.com to https://lamosty.com). Changing only site and home wasn’t enough. Media files such as pictures added in my posts were still pointing to the old URL address. Velvet Blues Update URLs allows you to do a safe search-and-replace over your database effectively changing the old URL addresses to the new ones.

WP Sync DB

This plugin makes moving data between databases a simple task. Specify which tables you want to migrate, configure databases and hit go.

Although it took me a while to compile this list, it’s far from being complete. There are at least twice as many plugins out in the wild, waiting for us to discover and use them. As WordPress becomes more widespread, we can expect even greater amount of tools for WordPress project development to emerge. Yeah, good times ahead.

Share your favorite dev tools with us in the comments below please.

Leave a comment

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: