Controlling WordPress Through the Command Line with WP-CLI

By on WordPress

Even in a standard install, WordPress is a highly-visual platform. That not only makes for easy content creation, but site maintenance as well. Within a few clicks, you can install a plugin, run software updates and tweak any number of settings.

The WordPress Toolbox
Unlimited Downloads: 500,000+ WordPress Themes, Plugins, Templates & Design Assets


However, there are situations where that visual interface can get in the way. For example, running large imports or other memory-intensive tasks can cause problems on slower servers. Plus, you don’t always get the fine grain level of control that might be necessary.

For those who want more control and the ability to carry out complex tasks, WP-CLI could be just what you’re looking for.

WP-CLI Home Page

What is WP-CLI?

WP-CLI is a command line interface for WordPress. It provides the ability to maintain just about every aspect of your WordPress website without ever needing to login to the dashboard.

Like WordPress itself, WP-CLI is free software. To use it, you must first install it on your remote server or local machine. From there, you can put the power of the command line to work for your site.

But before you get too excited, a word of warning. This is a highly-powerful (and potentially dangerous) tool. Make a mistake and you might not easily recover from it. Therefore, it’s recommended that you set up a test site and use it to learn some of the basic commands. Once you feel comfortable, you can then start using it on your production sites.

If you’re not too familiar with the command line, WP-CLI can seem a bit overwhelming. Thankfully, there is plenty of documentation available. You will first want to check out the fantastic Quick Start guide to help get up and running.

What Does It Do?

A whole lot! WP-CLI aims to be a complete alternative to the dashboard, so all of the basics are covered. You can, for example, install new plugins, update your existing install, create a new WordPress install or manage a multisite network.

But it goes well beyond day-to-day maintenance. There are some commands built into WP-CLI that aren’t even available on the dashboard (at least, not without installing a plugin).

One of the most powerful included features is the ability to perform a search and replace within the database. This could be used, for example, to replace a site’s development URL with the production version during launch.

$ wp search-replace 'http://development.mysite.com' 'http://www.mysite.com' --dry-run

The first URL above is what we’re searching for (development.mysite.com) and the second is what we want to replace it with (www.mysite.com).

Also note the --dry-run argument at the end of the command. This will allow you to see the results of a search and replace without actually making changes to the database. Once you’re confident in what the result will be, you can run it again, this time without including the argument. Again, check the documentation to ensure that you’re not doing something you shouldn’t!

Then there is the ability to create your own custom commands. This enables WP-CLI to perform tasks related to a third-party plugin, theme or other functionality you have built.

Other tasks, such as creating child themes, Gutenberg editor blocks or the starter code for a custom plugin are all possible via the wp scaffold command.

Still, we’re really just scratching the surface of what this tool is capable of.

Powerful and Extensible

One of the most interesting aspects of WP-CLI is that there are no real limits as to what you can do with it. While you may just want to utilize it to take care of basic tasks, you could theoretically build in functionality for your own niche use cases as well. This could benefit everything from small sites all the way to enterprise.

Of course, the command line isn’t everyone’s cup of tea. Having recently been introduced to WP-CLI myself, I was quite apprehensive about using it. But once you get the syntax of the commands down (and learn from a few mistakes), it is certainly possible to become more comfortable over time.

So, if you’re looking to do even more with WordPress, give WP-CLI a look. It might become the next great addition to your developer’s toolbox.

Comments