Harness the Power of WP-CLI to Manage Your WordPress Sites

wp-cli

WordPress is well known for being very user-friendly, and that is one of the reasons it has become one of the most popular content management systems on the web. But when it comes to managing multiple WordPress sites and repeating the same operations over and over again it can become quite a tedious task for developers. And that brings us to WP-CLI, a set of command line tools to help speed up the development process and accomplish tasks more efficiently and quickly. Many WordPress professionals use tools like ManageWP or WP Remote; WP-CLI is a powerful alternative of these tools specifically for developers!

WP-CLI’s mission is to be, quantitatively, the fastest interface for developers to manage WordPress. – wp-cli.org

What Is WP-CLI?

WP-CLI is an open source set of command line tools to help make web developers lives easier when it comes to managing WordPress installations. You can install WordPress (including Multisite), update plugins, take backups, perform database operations, publish content, manage WP-Cron events, and perform hundreds of other tasks without ever touching your web browser. If you prefer working from the command-line then WP-CLI is your friend!wp-cli logo

WP-CLI was originally created by Andreas Creten and Cristi Burcă who pushed their first source code to GitHub on November 06, 2011. In recent years there has been a lot of buzz around WP-CLI and according to Google trends the term “WP-CLI” is being searched more than ever before.

wp-cli google trends

Daniel Bachuber, who has now maintained the project since 2014, is also pushing to unlock the potential of the WP REST API at the command line with his new RESTful WP-CLI project. He started a KickStarter campaign for RESTful WP-CLI and his $17,500 goal was completely funded within only 12 hours. That just goes to show you that the WordPress developer community is wanting to see more command line tools and support!

How to Install WP-CLI

To get started with WP-CLI you need to ensure that you have SSH access to your web host or server. All modern providers like Digital Ocean, Linode, Vultr provide this and allow you to spin up a VPS in a matter of minutes. There are even managed WordPress hosts like Pantheon which give you free dev environments and support WP-CLI. Other requirements for WP-CLI are PHP 5.3.2 or later, WordPress, 3.4 or later, and a UNIX like environment. If you are on a Mac you can just dive right into the installation! If you happen to be on Windows, you can use command-line tool like Cygwin or a virtual machine. See David’s awesome Windows and WP-CLI tutorial. Follow the steps below to install WP-CLI.

Note: In this example we are taking screenshots from a Windows + WP-CLI setup.

  1. SSH into your server.
  2. Get the latest version of WP-CLI from GitHub using cURL or wget. The following command will extra the WP-CLI files to root of your user directory.
    curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

    You run the command below to check and make sure phar downloaded correctly.

    php wp-cli.phar --info

    It will then output like this.wp-cli info

  3. Make it executable.
    chmod +x wp-cli.phar
  4. This is an optional step but we recommend moving the file to a folder so you can execute it from anywhere, and also give it an easy name like ‘wp’ so you can use the WP-CLI commands by typing it at the start.
     sudo mv wp-cli.phar /usr/local/bin/wp

WP-CLI Commands

Here is a list of the basic commands you can use with WP-CLI. You can see a more in-depth explanation of each command here. Or you can type the following in the command-line to generate helpful information and the sub-commands available.

wp help
cache Manage the object cache.
cap Manage user capabilities.
cli Get information about WP-CLI itself.
comment Manage comments.
core Download, install, update and otherwise manage WordPress proper.
cron Manage WP-Cron events and schedules.
db Perform basic database operations.
eval Execute arbitrary PHP code.
eval-file Load and execute a PHP file.
export Export content to a WXR file.
help Get help on WP-CLI, or on a specific. command.
import Import content from a WXR file.
media Manage attachments.
menu List, create, assign, and delete menus
network
option Manage options.
plugin Manage plugins.
post Manage posts.
post-type Manage post types.
rewrite Manage rewrite rules.
role Manage user roles.
scaffold Generate code for post types, taxonomies, etc.
search-replace Search/replace strings in the database.
server Launch PHP’s built-in web server for this specific WordPress installation.
shell Interactive PHP console.
sidebar Manage sidebars.
site Perform site-wide operations.
super-admin List, add, and remove super admins from a network.
taxonomy Manage taxonomies.
term Manage terms.
theme Manage themes.
transient Manage transients.
user Manage users.
widget Manage sidebar widgets.

There is also a list of known WP-CLI community commands used in popular third-party plugins like BackupBuddy, MainWP, WP Migrate DB Pro, etc. And since it is open source you can even write your own WP-CLI commands.

WP-CLI How To’s

Now that you have WP-CLI installed, there are literally hundreds of tasks you can accomplish and speed up using WP-CLI. Below we will discuss a few common examples.

Install WordPress with WP-CLIwordpress

Probably the most important one, how to install WordPress! We will be using the basic core command.

  1. First you need to download WordPress. You can download a certain version of WordPress by appending the following with the version number, example: --version=4.1.
    wp core download
  2. Then you need to create your wp-config.php file. Obviously this assumes you have already created the database.
    wp core config --dbname=databasename --dbuser=databaseuser --dbpass=databasepassword --dbhost=localhost --dbprefix=prfx_
  3. Then we install WordPress using the follow command.
    wp core install --url=example.com  --title="WordPress Website Title" --admin_user=admin_user --admin_password=admin_password --admin_email="email@domain.com"

Backup WordPress Database

backup wordpress database WP-CLI

Before doing anything else you should always have a backup of your database. You can use the db command to quickly export a .sql file to the root of your website.

 

wp db export

Update WordPress with WP-CLI

Before updating WordPress you might want to check the version of your current WordPress installation. To do that you can use the core command and it will return the current version.

wp core version

wp-cli wp core version

To then update your WordPress install all you have to do is run the following command below. You can start to see how fast using WP-CLI really is! You could backup your database, check the current version, and update WordPress, literally in a matter of seconds with only three commands!

wp core update

Update WordPress Site URLs

update wordpress URLs WP-CLI

If you are installing WordPress or moving it around from local to production you might need to update the WordPress and site address URLs. To do this you can use the wp option command.

wp option update home https://newaddress.com
wp option update siteurl https://newaddress.com

Install WordPress Plugins

cache enabler

Before installing new WordPress plugins you might want to check the status of what is already installed. To do this you can use the wp plugin command. The following will display a current list of plugins installed and a legend letting you know if they are inactive, active, or if there is an update available.

wp plugin status

wp-cli wp plugin status

You can then install any plugin from the WordPress repository. That’s right, you can even install KeyCDN’s free cache enabler plugin with WP-CLI. The name is simply the end of the slug in the repository.

install plugin wp-cli

You can then install it by running the following command.

wp plugin install cache-enabler
wp plugin activate cache-enabler

The same can be done to uninstall the plugin.

wp plugin uninstall cache-enabler

Update Plugins with WP-CLI

Updating plugins is a very similar process. To do this we gain use the wp plugin command.

wp plugin update cache-enabler

Install WordPress Themes

Installing WordPress themes is almost identical to the plugins process. Perhaps you want to get an older WordPress theme back for testing. Remember, this is pulling from the repository. To do this we use the wp theme command.

wp theme install twentyten
wp theme activate twentyten

wp-cli install theme

Update WordPress Themes

Similarly you can also update WordPress themes using the wp theme command. First you will probably want to grab a current list of your themes. It will show the version next to them.

wp theme list

wp-cli wp theme list

To update a theme run the following command.

wp theme update twentyten

Automating Tasks

One of the biggest benefits of WP-CLI is of course automating some of those repetitive tasks, especially for those working with WordPress multisite. You can use bash scripts or do it in a single command like we used below to install our CDN Enabler plugin, Cache Enabler plugin, and Optimus Image Optimizer plugin all at the same time.

for site in $(wp site list --field=url); do wp plugin install cdn-enabler --url=$site --activate wp plugin install cache-enabler --url=$site --activate wp plugin install optimus --url=$site --activate; done

For launching new WordPress sites this opens up a whole new world of automation. Just imagine running only a few commands and your 20+ plugin WordPress site is up and going and backed up while you take a coffee break.

WP-CLI Resources

Summary

As you can probably tell you can get as advanced and intricate as you want with WP-CLI. With the ability to also create your own commands, the sky is pretty much the limit on what you can automate. If you haven’t started using WP-CLI yet, give it a try, it might just become your new best friend as you unleash the power of the command line with WordPress.

Related Articles

Harness the Power of WP-CLI to Manage Your WordPress Sites was last modified: January 13th, 2017 by Brian Jackson