WP-CLI - Are you Using the Command Line for WordPress?

WP-CLI - Are you Using the Command Line for WordPress?

Command line programmes are useful for many applications and can save you a lot of work. Today I will introduce you to a very helpful command line programme for WordPress : WP-CLI.

WordPress has evolved since its beginnings in 2004. Originally, it was a blogging platform designed to "democratize publishing" and quickly became very popular. The vision of WordPress co-founder Matt Mullenweg was to make publishing content on the internet accessible to everyone, regardless of technical knowledge. 

The platform has to face new challenges these days. This is partly because the web is becoming more technically sophisticated, but also because much of the website is based on outdated code. Many (and especially more experienced people) would also like features like the command line they are familiar with. And not without reason - this great tool can also be used when using WordPress and can also make many processes easier for you!

To understand what WP-CLI is, we start with the "CLI". In German, we would translate a CLI (Command Line Interface) as "command line programme". You can quickly understand what this is by pressing Win+R on Windows, typing "cmd" and waiting to see what happens. On a Mac, all you have to do is start the "Terminal" application. The Box with the cryptic lines that opens there usually seems rather daunting to inexperienced people - but with increasing technical knowledge it becomes more and more familiar.

A command line programme then not only creates a kind of "feel-good" atmosphere, but can save a lot of work! To become good at developing and programming systems, working with command line interfaces in any form is an important part.

CLIs have been used as long as computers have existed. The principle is quite simple: You give one or more commands to the interface and your computer executes them. For example, this command outputs the user name with which you are currently logged in to your PC:

WP-CLI - Are you Using the Command Line for WordPress?

However, this is not very intuitive and requires that you know what you want from your computer and how. That's why Graphic User Interfaces (GUI) like Windows and Mac OS emerged to control the computer in a visually appealing way. These graphical user interfaces eventually became the standard way for people to interact with computers. 

But the benefits of CLIs are considerable: the two most important are increased work efficiency and automation of repetitive tasks. Now that you know what a CLI is, let's take a closer look at WP-CLI . 

"*" indicates required fields

Consent*
This field is for validation and should not be changed.

What is WP-CLI and what is it for?

What is WP-CLI and why should you use it? In short, WP-CLI is a file that allows you to execute specific commands in the WordPress terminal. You can find a complete list of commands in the official WP-CLI documentation. There is also the possibility to create your own WP-CLI commands. You can read how this works in the "Commands Cookbook". 

With WP-CLI you can automate processes that would otherwise consume your valuable time, starting with the most basic task - installing WordPress . The basic installation of WordPress is not a big challenge, but if you have a site in local development and now want to host the Staging or production site online, you will need to reinstall WordPress and the necessary Plugins . 

As an alternative to manual installation, you could connect to your server via SSH, navigate to the correct folder and run the following in the CLI:

wp-cli-wp-install

This is much faster than the conventional installation and manual modification of the database.

WP-CLI at Raidboxes

If you want to use WP-CLI only with Raidboxes , there is good news! Because it is already pre-installed when you create a new Box (i.e. a WordPress website) via the Raidboxes Dashboard . If you are wondering how to connect to Raidboxes via an SSH terminal and use WP-CLI , I recommend our article "The perfect WordPress development workflow with Git & SSH".

Requirements for WP-CLI

Surroundings 

A UNIX-like environment (OS X, Linux, FreeBSD, Cygwin), there is limited support for a Windows environment. So if you are working on a Windows computer, you will probably want to install Linux. One way to do this without having to partition your hard drive and boot Linux separately is WSL (Windows Subsystem for Linux). Feel free to check out the official documentation

PHP version

The minimum requirement for WP-CLI is currently PHP 5.6 or higher. Please note that older PHP versions are no longer supported by WordPress for security reasons and may therefore no longer be compatible with newer WordPress versions. You can check all currently supported PHP versions on the official PHP website. At Raidboxes we currently support PHP 7.2, 7.3 and 7.4( we will supportPHP 8 when WordPress is officially compatible with it).

WordPress version

WordPress 3.7 or higher is required to use WP-CLI . Versions older than the latest WordPress version may have obsolete features.

Local installation of WP-CLI

If you have already worked with NPM or Composer, the installation is quite simple: 

Download the file wp-cli.phar (you can use the command wget or curl): 

wp-cli-local-1

Run the file to make sure it works: 

wp-cli-local-2

That's it! You can now execute the command php wp-cli.phar to start WP-CLI . To save you typing next time, move this file to your local bin/wp folder instead. This way you can start WP-CLI by simply typing wp.

This is how you move the file:

wp-cli-local4

Do you use shared hosting?

If you host your website on a shared hosting account, you may run into a problem here. Most shared hosting services have disabled the use of the "sudo" command. This is because it would be very questionable from a security point of view. The command ensures that you can execute commands as Super Admin (or usually "root").

In this case there is a workaround - you can create an alias for the WP-CLI file. 

Create a folder for the WP-CLI file.

wp-cli-alias1

Move the file to the folder.

wp-cli-alias2

Make sure that you are in the root directory of your folder.

wp-cli-alias3

In the root directory you should have a .bashrc file (.zshrc for Mac). In this file you can create your own custom aliases. If you don't know what an alias is, you will benefit greatly from learning it now. Briefly described, they are shortcuts for commands that you can create. See the documentation here.

Edit your .bashrc file with nano.

wp-cli-alias4

Add these two lines and save the file.

wp-cli-alias6

Then log out of your shared hosting account and back in again for the changes to take effect. 

Test and basic syntax

As with almost all terminal commands, there is a certain syntax to show that you are using the WordPress CLI. In this case it is wp followed by a command. To test whether a language is installed, you can call the version number as the first command. 

wp -info should show you something like this: 

wp-cli-test

WP-CLI Application examples

We will now look together at some useful things you can do with WP-CLI . You can always type wp help to see all the available commands.

A quick note at this point: Raidboxes does not have the function to install and reinstall the WordPress core for security reasons. However, this should not be a problem as your Box is already set up with WordPress and WP-CLI at Raidboxes . If you have any further questions, please do not hesitate to contact our support.

Download, configure and installWordPress 

wp core <Befehl> 

"wp core download" downloads the latest version of WordPress in the folder where the command is executed.

Downloading from WordPress is pretty easy, but if you want a specific version, you can add that very easily: 

wp-cli-version

ConfigureWordPress 

wp config <Befehl>

Short note

The command "wp core config" creates the file wp-config.php, but it is obsolete and has been renamed "wp config creates". However, it is still possible to use the old command(notes on this).

Before you create and configure your configuration file (the wp-config.php), you should fulfil the following requirements:

  • have created a database for WordPress
  • Create a user for this database
  • added the user to the database and given him the correct permissions for WordPress .

To create the configuration file, use the following line and replace -dbuser/name/pass with your own information. Enabling debugging is of course optional here.

WP-CLI - Are you Using the Command Line for WordPress?

InstallWordPress

Again, replace the sample data with your own information.  

wp-cli-wp-install

ManagePlugins and Themes

wp plugin <Befehl>

Plugin and Theme installations can also be easily managed with WP-CLI . The syntax, i.e. the structure of the command, follows the same pattern. As soon as you have internalised it, it is very easy to install, activate/deactivate, update or completely delete Plugins or Themes .

wp-cli-plugins

Create dummy data

It is quite helpful to see what the postswill look like on your development page. With these commands you can easily create dummy data.

wp post generate

wp-cli-dummy-data_1
WP-CLI - Are you Using the Command Line for WordPress?

And if you made a mistake and added an extra 0 by mistake, you can of course remove the data again. 

Back up your database and import a new database

Before you make extensive changes, you should always make a backup. 

wp-cli-db-backup

Search and replace

When you transfer a website under development to a live environment or import a new database into a livesite , it often happens that you have to change content or configurations. Replacing http with https is often necessary, otherwise a mixed content error will occur. A perfect way to do this is to search and replace with WP-CLI.

wp search-replace

wp-cli-search-replace

Conclusion on WP-CLI

As with all productivity tools, the real benefit is in supporting your own workflow. The more you learn about WP-CLI , the more ways you will find to improve the efficiency of your workflow. Have fun and try it out! 

Your questions on the topic WP-CLI

What questions do you have about WP-CLI ? We are looking forward to your comment. Are you interested in current topics about WordPress , web development and web design? Then follow us on Twitter, Facebook, LinkedIn or via our newsletter.

Did you like the article?

Your rating helps us improve our future content.

Post a comment

Your email address will not be published.