WordPress at a glance
Home Handbook WP-CLI Commands

wp plugin

Manages plugins, including installs, activations, and updates.

See the WordPress Plugin Handbook developer resource for more information on plugins.

Commands Description
Reveals the status of one or all plugins.
Searches the WordPress.org plugin directory.
Activates one or more plugins.
Deactivates one or more plugins.
Toggles a plugin's activation state.
Gets the path to a plugin or to the plugin directory.
Updates one or more plugins.
Installs one or more plugins.
Gets details about an installed plugin.
Uninstalls one or more plugins.
Checks if a given plugin is installed.
Checks if a given plugin is active.
Deletes plugin files without deactivating or uninstalling.
Gets a list of plugins.
Verifies plugin files against WordPress.org's checksums.

Examples

# Activate plugin
$ wp plugin activate hello
Plugin 'hello' activated.
Success: Activated 1 of 1 plugins.

# Deactivate plugin
$ wp plugin deactivate hello
Plugin 'hello' deactivated.
Success: Deactivated 1 of 1 plugins.

# Delete plugin
$ wp plugin delete hello
Deleted 'hello' plugin.
Success: Deleted 1 of 1 plugins.

# Install the latest version from wordpress.org and activate
$ wp plugin install bbpress --activate
Installing bbPress (2.5.9)
Downloading install package from https://downloads.wordpress.org/plugin/bbpress.2.5.9.zip...
Using cached file '/home/vagrant/.wp-cli/cache/plugin/bbpress-2.5.9.zip'...
Unpacking the package...
Installing the plugin...
Plugin installed successfully.
Activating 'bbpress'...
Plugin 'bbpress' activated.
Success: Installed 1 of 1 plugins.

Source code of the commands


menu

wp plugin status

Reveals the status of one or all plugins.

Usage

wp plugin status [{plugin}]

You can specify global options and the following:

[{plugin}]
A particular plugin to show the status for.

Examples

# Displays status of all plugins
$ wp plugin status
5 installed plugins:
  I akismet                3.1.11
  I easy-digital-downloads 2.5.16
  A theme-check            20160523.1
  I wen-logo-slider        2.0.3
  M ns-pack                1.0.0
Legend: I = Inactive, A = Active, M = Must Use
# Displays status of a plugin
$ wp plugin status theme-check
Plugin theme-check details:
	Name: Theme Check
	Status: Active
	Version: 20160523.1
	Author: Otto42, pross
	Description: A simple and easy way to test your theme for all the latest WordPress standards and practices. A great theme development tool!

wp plugin search

Searches the WordPress.org plugin directory.

Displays plugins in the WordPress.org plugin directory matching a given search query.

Usage

wp plugin search {search} [--page={page}] [--per-page={per-page}] [--field={field}] [--fields={fields}] [--format={format}]

You can specify global options and the following:

{search}
The string to search for.
[--page={page}]
Optional page to display.
Default: 1
[--per-page={per-page}]
Optional number of results to display.
Default: 10
[--field={field}]
Prints the value of a single field for each plugin.
[--fields={fields}]

Ask for specific fields from the API. Defaults to name,slug,author_profile,rating. Acceptable values:

name: Plugin Name
slug: Plugin Slug
version: Current Version Number
author: Plugin Author
author_profile: Plugin Author Profile
contributors: Plugin Contributors
requires: Plugin Minimum Requirements
tested: Plugin Tested Up To
compatibility: Plugin Compatible With
rating: Plugin Rating in Percent and Total Number
ratings: Plugin Ratings for each star (1-5)
num_ratings: Number of Plugin Ratings
homepage: Plugin Author's Homepage
description: Plugin's Description
short_description: Plugin's Short Description
sections: Plugin Readme Sections: description, installation, FAQ, screenshots, other notes, and changelog
downloaded: Plugin Download Count
last_updated: Plugin's Last Update
added: Plugin's Date Added to wordpress.org Repository
tags: Plugin's Tags
versions: Plugin's Available Versions with D/L Link
donate_link: Plugin's Donation Link
banners: Plugin's Banner Image Link
icons: Plugin's Icon Image Link
active_installs: Plugin's Number of Active Installs
contributors: Plugin's List of Contributors
url: Plugin's URL on wordpress.org

[--format={format}]

Render output in a particular format.
Default: table
Can be:

  • table
  • csv
  • count
  • json
  • yaml

Examples

$ wp plugin search dsgnwrks --per-page=20 --format=json
Success: Showing 3 of 3 plugins.
[{"name":"DsgnWrks Instagram Importer Debug","slug":"dsgnwrks-instagram-importer-debug","rating":0},{"name":"DsgnWrks Instagram Importer","slug":"dsgnwrks-instagram-importer","rating":84},{"name":"DsgnWrks Twitter Importer","slug":"dsgnwrks-twitter-importer","rating":80}]
$ wp plugin search dsgnwrks --fields=name,version,slug,rating,num_ratings
Success: Showing 3 of 3 plugins.
+-----------------------------------+---------+-----------------------------------+--------+-------------+
| name                              | version | slug                              | rating | num_ratings |
+-----------------------------------+---------+-----------------------------------+--------+-------------+
| DsgnWrks Instagram Importer Debug | 0.1.6   | dsgnwrks-instagram-importer-debug | 0      | 0           |
| DsgnWrks Instagram Importer       | 1.3.7   | dsgnwrks-instagram-importer       | 84     | 23          |
| DsgnWrks Twitter Importer         | 1.1.1   | dsgnwrks-twitter-importer         | 80     | 1           |
+-----------------------------------+---------+-----------------------------------+--------+-------------+
menu

wp plugin activate

Activates one or more plugins.

Usage

wp plugin activate [{plugin}...] [--all] [--network]

You can specify global options and the following:

[{plugin}...]
One or more plugins to activate.
[--all]
If set, all plugins will be activated.
[--network]
If set, the plugin will be activated for the entire multisite network.

Examples

# Activate plugin
$ wp plugin activate hello
Plugin 'hello' activated.
Success: Activated 1 of 1 plugins.
# Activate plugin in entire multisite network
$ wp plugin activate hello --network
Plugin 'hello' network activated.
Success: Network activated 1 of 1 plugins.

wp plugin deactivate

Deactivates one or more plugins.

Usage

wp plugin deactivate [{plugin}...] [--uninstall] [--all] [--network]

You can specify global options and the following:

[{plugin}...]
One or more plugins to deactivate.
[--uninstall]
Uninstall the plugin after deactivation.
[--all]
If set, all plugins will be deactivated.
[--network]
If set, the plugin will be deactivated for the entire multisite network.

Examples

# Deactivate plugin
$ wp plugin deactivate hello
Plugin 'hello' deactivated.
Success: Deactivated 1 of 1 plugins.

wp plugin toggle

Toggles a plugin's activation state.

If the plugin is active, then it will be deactivated. If the plugin is inactive, then it will be activated.

Usage

wp plugin toggle {plugin}... [--network]

You can specify global options and the following:

{plugin}...
One or more plugins to toggle.
[--network]
If set, the plugin will be toggled for the entire multisite network.

Examples

# Akismet is currently activated
$ wp plugin toggle akismet
Plugin 'akismet' deactivated.
Success: Toggled 1 of 1 plugins.
# Akismet is currently deactivated
$ wp plugin toggle akismet
Plugin 'akismet' activated.
Success: Toggled 1 of 1 plugins.

wp plugin path

Gets the path to a plugin or to the plugin directory.

Usage

wp plugin path [{plugin}] [--dir]

You can specify global options and the following:

[{plugin}]
The plugin to get the path to. If not set, will return the path to the plugins directory.
[--dir]
If set, get the path to the closest parent directory, instead of the plugin file.

Examples

$ cd $(wp plugin path) && pwd
/var/www/wordpress/wp-content/plugins

wp plugin update

Updates one or more plugins.

Usage

wp plugin update [{plugin}...] [--all] [--exclude={name}] [--minor] [--patch] [--format={format}] [--version={version}] [--dry-run]

You can specify global options and the following:

[{plugin}...]
One or more plugins to update.
[--all]
If set, all plugins that have updates will be updated.
[--exclude={name}]
Comma separated list of plugin names that should be excluded from updating.
[--minor]
Only perform updates for minor releases (e.g. from 1.3 to 1.4 instead of 2.0)
[--patch]
Only perform updates for patch releases (e.g. from 1.3 to 1.3.3 instead of 1.4)
[--format={format}]

Render output in a particular format.
Default: table
Can be:

  • table
  • csv
  • json
  • summary
[--version={version}]
If set, the plugin will be updated to the specified version.
[--dry-run]
Preview which plugins would be updated.

Examples

$ wp plugin update bbpress --version=dev
Installing bbPress (Development Version)
Downloading install package from https://downloads.wordpress.org/plugin/bbpress.zip...
Unpacking the package...
Installing the plugin...
Removing the old version of the plugin...
Plugin updated successfully.
Success: Updated 1 of 2 plugins.
$ wp plugin update --all
Enabling Maintenance mode...
Downloading update from https://downloads.wordpress.org/plugin/akismet.3.1.11.zip...
Unpacking the update...
Installing the latest version...
Removing the old version of the plugin...
Plugin updated successfully.
Downloading update from https://downloads.wordpress.org/plugin/nginx-champuru.3.2.0.zip...
Unpacking the update...
Installing the latest version...
Removing the old version of the plugin...
Plugin updated successfully.
Disabling Maintenance mode...
+------------------------+-------------+-------------+---------+
| name                   | old_version | new_version | status  |
+------------------------+-------------+-------------+---------+
| akismet                | 3.1.3       | 3.1.11      | Updated |
| nginx-cache-controller | 3.1.1       | 3.2.0       | Updated |
+------------------------+-------------+-------------+---------+
Success: Updated 2 of 2 plugins.
$ wp plugin update --all --exclude=akismet
Enabling Maintenance mode...
Downloading update from https://downloads.wordpress.org/plugin/nginx-champuru.3.2.0.zip...
Unpacking the update...
Installing the latest version...
Removing the old version of the plugin...
Plugin updated successfully.
Disabling Maintenance mode...
+------------------------+-------------+-------------+---------+
| name                   | old_version | new_version | status  |
+------------------------+-------------+-------------+---------+
| nginx-cache-controller | 3.1.1       | 3.2.0       | Updated |
+------------------------+-------------+-------------+---------+
menu

wp plugin install

Installs one or more plugins.

Usage

wp plugin install {plugin|zip|url}... [--version={version}] [--force] [--activate] [--activate-network]

You can specify global options and the following:

{plugin|zip|url}...
One or more plugins to install. Accepts a plugin slug, the path to a local zip file, or a URL to a remote zip file.
[--version={version}]
If set, get that particular version from wordpress.org, instead of the stable version.
[--force]
If set, the command will overwrite any installed version of the plugin, without prompting for confirmation.
[--activate]
If set, the plugin will be activated immediately after install.
[--activate-network]
If set, the plugin will be network activated immediately after install

Examples

# Install the latest version from wordpress.org and activate
$ wp plugin install bbpress --activate
Installing bbPress (2.5.9)
Downloading install package from https://downloads.wordpress.org/plugin/bbpress.2.5.9.zip...
Using cached file '/home/vagrant/.wp-cli/cache/plugin/bbpress-2.5.9.zip'...
Unpacking the package...
Installing the plugin...
Plugin installed successfully.
Activating 'bbpress'...
Plugin 'bbpress' activated.
Success: Installed 1 of 1 plugins.
# Install the development version from wordpress.org
$ wp plugin install bbpress --version=dev
Installing bbPress (Development Version)
Downloading install package from https://downloads.wordpress.org/plugin/bbpress.zip...
Unpacking the package...
Installing the plugin...
Plugin installed successfully.
Success: Installed 1 of 1 plugins.
# Install from a local zip file
$ wp plugin install ../my-plugin.zip
Unpacking the package...
Installing the plugin...
Plugin installed successfully.
Success: Installed 1 of 1 plugins.
# Install from a remote zip file
$ wp plugin install http://s3.amazonaws.com/bucketname/my-plugin.zip?AWSAccessKeyId=123&Expires=456&Signature=abcdef
Downloading install package from http://s3.amazonaws.com/bucketname/my-plugin.zip?AWSAccessKeyId=123&Expires=456&Signature=abcdef
Unpacking the package...
Installing the plugin...
Plugin installed successfully.
Success: Installed 1 of 1 plugins.
# Update from a remote zip file
$ wp plugin install https://github.com/envato/wp-envato-market/archive/master.zip --force
Downloading install package from https://github.com/envato/wp-envato-market/archive/master.zip
Unpacking the package...
Installing the plugin...
Renamed Github-based project from 'wp-envato-market-master' to 'wp-envato-market'.
Plugin updated successfully
Success: Installed 1 of 1 plugins.
# Forcefully re-install all installed plugins
$ wp plugin install $(wp plugin list --field=name) --force
Installing Akismet (3.1.11)
Downloading install package from https://downloads.wordpress.org/plugin/akismet.3.1.11.zip...
Unpacking the package...
Installing the plugin...
Removing the old version of the plugin...
Plugin updated successfully
Success: Installed 1 of 1 plugins.
menu

wp plugin get

Gets details about an installed plugin.

Usage

wp plugin get {plugin} [--field={field}] [--fields={fields}] [--format={format}]

You can specify global options and the following:

{plugin}
The plugin to get.
[--field={field}]
Instead of returning the whole plugin, returns the value of a single field.
[--fields={fields}]
Limit the output to specific fields. Defaults to all fields.
[--format={format}]

Render output in a particular format.
Default: table
Can be:

  • table
  • csv
  • json
  • yaml

Examples

$ wp plugin get bbpress --format=json
{"name":"bbpress","title":"bbPress","author":"The bbPress Contributors","version":"2.6-alpha","description":"bbPress is forum software with a twist from the creators of WordPress.","status":"active"}
menu

wp plugin uninstall

Uninstalls one or more plugins.

Usage

wp plugin uninstall [{plugin}...] [--deactivate] [--skip-delete] [--all]

You can specify global options and the following:

[{plugin}...]
One or more plugins to uninstall.
[--deactivate]
Deactivate the plugin before uninstalling. Default behavior is to warn and skip if the plugin is active.
[--skip-delete]
If set, the plugin files will not be deleted. Only the uninstall procedure will be run.
[--all]
If set, all plugins will be uninstalled.

Examples

$ wp plugin uninstall hello
Uninstalled and deleted 'hello' plugin.
Success: Installed 1 of 1 plugins.

wp plugin is-installed

Checks if a given plugin is installed.

Returns exit code 0 when installed, 1 when uninstalled.

Usage

wp plugin is-installed {plugin}

You can specify global options and the following:

{plugin}
The plugin to check.

Examples

# Check whether plugin is installed; exit status 0 if installed, otherwise 1
$ wp plugin is-installed hello
$ echo $?
1

wp plugin is-active

Checks if a given plugin is active.

Returns exit code 0 when active, 1 when not active.

Usage

wp plugin is-active {plugin}

You can specify global options and the following:

{plugin}
The plugin to check.

Examples

# Check whether plugin is Active; exit status 0 if active, otherwise 1
$ wp plugin is-active hello
$ echo $?
1

wp plugin delete

Deletes plugin files without deactivating or uninstalling.

Usage

wp plugin delete [{plugin}...] [--all]

You can specify global options and the following:

[{plugin}...]
One or more plugins to delete.
[--all]
If set, all plugins will be deleted.

Examples

# Delete plugin
$ wp plugin delete hello
Deleted 'hello' plugin.
Success: Deleted 1 of 1 plugins.
# Delete inactive plugins
$ wp plugin delete $(wp plugin list --status=inactive --field=name)
Deleted 'tinymce-templates' plugin.
Success: Deleted 1 of 1 plugins.

wp plugin list

Gets a list of plugins.

Displays a list of the plugins installed on the site with activation status, whether or not there's an update available, etc.

Use --status=dropin to list installed dropins (e.g. object-cache.php).

Usage

wp plugin list [--{field}={value}] [--field={field}] [--fields={fields}] [--format={format}]

You can specify global options and the following:

[--{field}={value}]
Filter results based on the value of a field.
[--field={field}]
Prints the value of a single field for each plugin.
[--fields={fields}]
Limit the output to specific object fields.
[--format={format}]

Render output in a particular format.
Default: table
Can be:

  • table
  • csv
  • count
  • json
  • yaml

Available fields

These fields will be displayed by default for each plugin:

  • name
  • status
  • update
  • version

These fields are optionally available:

  • update_version
  • update_package
  • update_id
  • title
  • description

Examples

# List active plugins on the site.
$ wp plugin list --status=active --format=json
[{"name":"dynamic-hostname","status":"active","update":"none","version":"0.4.2"},{"name":"tinymce-templates","status":"active","update":"none","version":"4.4.3"},{"name":"wp-multibyte-patch","status":"active","update":"none","version":"2.4"},{"name":"wp-total-hacks","status":"active","update":"none","version":"2.0.1"}]
# List plugins on each site in a network.
$ wp site list --field=url | xargs -I % wp plugin list --url=%
+---------+----------------+--------+---------+
| name    | status         | update | version |
+---------+----------------+--------+---------+
| akismet | active-network | none   | 3.1.11  |
| hello   | inactive       | none   | 1.6     |
+---------+----------------+--------+---------+
+---------+----------------+--------+---------+
| name    | status         | update | version |
+---------+----------------+--------+---------+
| akismet | active-network | none   | 3.1.11  |
| hello   | inactive       | none   | 1.6     |
+---------+----------------+--------+---------+
menu

wp plugin verify-checksums

Verifies plugin files against WordPress.org's checksums.

Usage

wp plugin verify-checksums [{plugin}...] [--all] [--strict] [--format={format}]

You can specify global options and the following:

[{plugin}...]
One or more plugins to verify.
[--all]
If set, all plugins will be verified.
[--strict]
If set, even "soft changes" like readme.txt changes will trigger checksum errors.
[--format={format}]

Render output in a specific format.
Default: table
Can be:

  • table
  • json
  • csv
  • yaml
  • count

Examples

# Verify the checksums of all installed plugins
$ wp plugin verify-checksums --all
Success: Verified 8 of 8 plugins.
# Verify the checksums of a single plugin, Akismet in this case
$ wp plugin verify-checksums akismet
Success: Verified 1 of 1 plugins.