WordPress wp-cli overview


WordPress Command Line Interface (or, wp-cli ) is installed on all servers at DreamHost. This feature allows you to run WordPress commands from your Shell terminal. For example you can import a database, create a new user, update themes and plugins all using wp-cli.

This article is a quick overview of this service. View the following articles for information on how to create a Shell user and log into your server to run these commands.

Listing available commands

Log in to your server via SSH. Once logged in, make sure you’re in your WordPress site’s directory. In that directory run the following command to print a list of available options:

[server]$ wp

The following available commands display:


  cache               Adds, removes, fetches, and flushes the WP Object Cache object.
  cap                 Adds, removes, and lists capabilities of a user role.
  cli                 Review current WP-CLI info, check for updates, or see defined aliases.
  comment             Creates, updates, deletes, and moderates comments.
  config              Generates and reads the wp-config.php file.
  core                Downloads, installs, updates, and manages a WordPress installation.
  cron                Tests, runs, and deletes WP-Cron events; manages WP-Cron schedules.
  db                  Performs basic database operations using credentials stored in wp-config.php.
  dh-find-check       Combines finding and checking whether the installation is still hosted.
  doctor              Diagnose what ails WordPress.
  embed               Inspects oEmbed providers, clears embed cache, and more.
  eval                Executes arbitrary PHP code.
  eval-file           Loads and executes a PHP file.
  export              Exports WordPress content to a WXR file.
  find                Find WordPress installations on the filesystem.
  help                Get help on WP-CLI, or on a specific command.
  host-check          Checks hosting status for WordPress installation.
  import              Imports content from a given WXR file.
  language            Installs, activates, and manages language packs.
  media               Imports files as attachments, regenerates thumbnails, or lists registered image sizes.
  menu                Lists, creates, assigns, and deletes the active theme's navigation menus.
  network             Perform network-wide operations.
  option              Retrieves and sets site options, including plugin and WordPress settings.
  package             Lists, installs, and removes WP-CLI packages.
  php-compat          Scan WordPress, plugins and themes for PHP version compatibility.
  plugin              Manages plugins, including installs, activations, and updates.
  post                Manages posts, content, and meta.
  post-type           Retrieves details on the site's registered post types.
  reinstall           Reinstalls WordPress core, themes, and plugins.
  rewrite             Lists or flushes the site's rewrite rules, updates the permalink structure.
  role                Manages user roles, including creating new roles and resetting to defaults.
  scaffold            Generates code for post types, taxonomies, plugins, child themes, etc.
  search-replace      Searches/replaces strings in the database.
  server              Launches PHP's built-in web server for a specific WordPress installation.
  shell               Opens an interactive PHP console for running and testing PHP code.
  sidebar             Lists registered sidebars.
  site                Creates, deletes, empties, moderates, and lists one or more sites on a multisite installation.
  super-admin         Lists, adds, or removes super admin users on a multisite installation.
  taxonomy            Retrieves information about registered taxonomies.
  term                Manages taxonomy terms and term meta, with create, delete, and list commands.
  theme               Manages themes, including installs, activations, and updates.
  transient           Adds, gets, and deletes entries in the WordPress Transient Cache.
  user                Manages users, along with their roles, capabilities, and meta.
  widget              Manages widgets, including adding and moving them within sidebars.

Finding more information on a command

To get more information on a specific command, run the --help option. For example:

[server]$ wp plugin --help

This prints a list of available subcommands. For example:


 activate          Activate a plugin.
 deactivate        Deactivate a plugin.
 delete            Delete plugin files.
 get               Get a plugin.
 install           Install a plugin.
 is-installed      Check if the plugin is installed.
 list              Get a list of plugins.
 path              Get the path to a plugin or to the plugin directory.
 search            Search the wordpress.org plugin repository.
 status            See the status of one or all plugins.
 toggle            Toggle a plugin's activation state.
 uninstall         Uninstall a plugin.
 update            Update one or more plugins.

You can then combine these with the main command to perform an action. Here is how you’d install a plugin named hello-dolly:

[server]$ wp plugin install hello-dolly
Installing Hello Dolly (1.6)
Downloading install package from https://downloads.wordpress.org/plugin/hello-dolly.1.6.zip...
Unpacking the package...
Installing the plugin...
Plugin installed successfully.

If you now run wp plugin list, all of your plugins appear:

[server]$ wp plugin list
| name               | status   | update | version |
| akismet            | inactive | none   | 3.1.1   |
| dreamobjects       | inactive | none   | 3.5.2   |
| hello-dolly        | inactive | none   | 1.6     |
| hello              | inactive | none   | 1.6     |
| jetpack            | active   | none   | 3.5.3   |
| varnish-http-purge | active   | none   | 3.7.2   |

Common commands

These popular commands are used most often when debugging:


Installing a plugin

[server]$ wp plugin install PLUGIN_NAME

Activating a plugin

[server]$ wp plugin activate PLUGIN_NAME

Deactivating a plugin

[server]$ wp plugin deactivate PLUGIN_NAME
[server]$ wp plugin toggle NAME

Deactivating installed plugins on multisite network

[server]$ wp plugin toggle NAME --network


Installing a theme

[server]$ wp theme install THEME_NAME

Deactivating a theme

[server]$ wp theme deactivate THEME_NAME

You must then activate a different theme:

[server]$ wp theme activate THEME_NAME


Creating users

View a list of all current users:

[server]$ wp user list

Create a new username while assigning its email and role:

[server]$ wp user create newusername support@dreamhost.com --role=administrator

Changing a password

List all users to view their user ID#:

[server]$ wp user list

Use that user ID# to update their password:

[server]$ wp user update 3 --user_pass=123456

Deleting a user

View a list of all current users:

[server]$ wp user list

Delete the user based on its name:

[server]$ wp user delete username
--reassign parameter not passed. All associated posts will be deleted. Proceed? [y/n] y

Flushing your cache

Run this to flush your cache:

[server]$ wp cache flush


Re-updating core files

[server]$ wp core update

Forcing the DB upgrade to run

[server]$ wp core update-db

Forcefully downloading all core files

[server]$ wp core download --force

Updating the 'home' url

[server]$ wp option update home https://www.example.com

Updating the 'siteurl' url

[server]$ wp option update siteurl https://www.example.com

Updating the PHP version wp-cli uses

  1. To change the version of PHP wp-cli uses, add the following line to your .bash_profile. Change the version as needed.
    export WP_CLI_PHP=/usr/local/php72/bin/php wp
  2. Next, source the .bash_profile by running this:
    [server]$ . ~/.bash_profile
  3. Finally, check to confirm wp-cli is using this new version by running wp --info.
    [server]$ wp --info
    OS:     Linux 4.14.117-grsec-grsec+ #1 SMP Fri May 10 17:15:47 PDT 2019 x86_64
    Shell:  /bin/bash
    PHP binary:     /usr/local/php72/bin/php
    PHP version:    7.2.13

Importing and exporting a WXR file

You can also use the import and export commands to manage your site data with a WXR file. View the following article for details.

See also

Did this article answer your questions?

Article last updated PST.

Still not finding what you're looking for?