22nd and 29th April 2021

WordPress Security Workshop

Office Hours

Thursdays 10am-1PM GMT

Book a free 20 minute chat with Tim!

Getting Started with WP-CLI


View this video on YouTube here:

This is the first video in a short series on working with WP-CLI, over the next few weeks we will be releasing additional videos for both WP-CLI as well as other topics. These video tutorials are possible due to my amazing Patrons through Patreon.

Getting going with WP-CLI

First off apologies for the sound quality and weird video issues at the end, the wonders of Youtube’s encoding are responsible for the later! As for the sound quality, in our first take the sound quality was truly awful, (those of you who follow me on twitter will know that we came up with a simple but effective solution). Our second take was much better and is the audio you’re hearing for most of the video. However, in post production I noticed a couple of mistakes and quickly went back to re-record. The only problem being that we’d made further improvements to the mic setup, so the sound quality is better but our dubbing is fairly obvious. Rather then re-record the whole thing again we decided that as this is the first video people will forgive us.

If you’re going to follow along then you’ll need to get wp-cli installed. Before you start head over to WP-CLI.org and download, remember you’re installing this on your server, not your local machine (unless it’s also your server, for example a dev environment) for this tutorial. In the next tutorial we’ll look at remotely connecting to sites using the WP-CLI tool, but for now we’ll assume that WP-CLI is installed on your server. If you’re installing on a windows machine you can either use Cygwin which comes bundled with solutions like XAMP or use the Powershell wrapper remember you only need to install WP-CLI where you’re running WordPress. For Mac and Linux users the install is just a case of following the 3 simple steps.

As WP-CLI uses the terminal, if you’re using it on your server, you’ll need some sort of shell access to your remote server to run WP-CLI on it. Many hosts offer SSH access to allow you to communicate with your server via your local terminal or on Windows applications such as Putty. Not all hosts provide this feature, especially on cheaper plans and shared hosts, so if you’re not sure check with your host if they offer this feature. You will also find some hosts have WP-CLI installed by default, if this is the case then you don’t need to install it again (if you’re not sure check with your host).

This tutorial was recorded using a VVV vagrant install which is a virtualised instance of a development server, which comes with WP-CLI installed by default.

In this first episode we’re going to cover some basic features and use cases for WP-CLI, it’s a quick introduction, remember you can always get help and look up individual parameters for a command on the WP-CLI.org site or using the built in help (I find that it’s quicker to do this via the site).
In this first video we’ll be covering:

  • Checking WP-CLI is installed and up to date
  • Looking at WordPress Core versions
  • Manipulate plugins, listing, installing, activating and uninstalling
  • Running backups, both SQL dumps and using WordPress Export tool
  • Installing and Updating WordPress Core
  • Manipulating WordPress through interactive shell
  • Writing simple SQL queries against the database
  • Writing a really simple database back up script

If you are not familiar with the command line generally, don’t worry. A couple of useful commands, you’ll see used on screen but not referenced in the video are:

  • cd – Change Directory its usage is cd folder/I/want/to/move/to
  • ls – list the contents of a directory
  • . – . followed by space and a file name, tells the shell to run that command for example . backup.sh

For this tutorial that’s pretty much all the commands you need to know, though I would encourage you to have a play with other commands.

Coming up next

The next two videos in this series will start to get a little more in-depth. Some of the highlights include:

  • Working with wp-cli.yml files for more advanced config options
  • Remotely controlling WordPress sites through WP-CLI via SSH and using WP-API
  • More complex Shell Scripting and using WP-CLI to automate a lot of your everyday tasks
  • Running scripts directly through WP-CLI using its eval command
  • Extending WP-CLI to create your own commands through your own plugins

Patreon Patrons


It’s only because of these fine people that videos like this are produced, if you want to help me film more video tutorials then please do consider becoming a Patreon Patron. For more information on why I chose to fund these videos through Patreon please see my introduction to Patreon post. Or to jump straight in and become a Patron by donating $1 or $5 visit my Patreon page for details.