Skip to main content

wp plugin list

Overview

Get a complete, filterable inventory of all installed plugins — active or inactive, outdated or current. The plugin audit command you'll use before every update, migration, or security review.

What It Does

wp plugin list reads the plugin directory and combines it with database metadata to show the name, status, version, update availability, and auto-update setting for every installed plugin. Fully filterable and scriptable.

Syntax

wp plugin list [--field=<field>] [--fields=<fields>] [--format=<format>] [--status=<status>] [--network] [--skip-update-check]

Options & Flags

FlagDefaultDescription
--field=FIELDOutput a single field value per line (e.g. name)
--fields=FIELDSAll fieldsComma-separated list of fields to display
--format=FORMATtableOutput: table, json, csv, yaml, count, ids
--status=STATUSallFilter by active, inactive, dropin, must-use
--networkList network-activated plugins (multisite)
--skip-update-checkSkip checking for available updates (faster)

Default Fields

FieldDescription
namePlugin slug
statusactive, inactive, must-use, dropin
updateavailable, none, version higher than expected
versionInstalled version
update_versionAvailable new version (if update exists)
auto_updateon / off

Basic Usage

List all plugins (table)

wp plugin list

Output:

+--------------------+----------+--------+---------+-------------+-------------+
| name | status | update | version | update_version | auto_update |
+--------------------+----------+--------+---------+-------------+-------------+
| akismet | active | none | 5.3.3 | | off |
| contact-form-7 | active | none | 5.9.8 | | off |
| woocommerce | active | available | 9.0.1 | 9.1.0 | off |
| hello | inactive | none | 1.7.2 | | off |
+--------------------+----------+--------+---------+-------------+-------------+

List only active plugins

wp plugin list --status=active

List only inactive plugins

wp plugin list --status=inactive

List plugins that have updates available

wp plugin list --update=available

Get only plugin names (for scripting)

wp plugin list --field=name

JSON output

wp plugin list --format=json

Count total plugins

wp plugin list --format=count

Real-World Scenarios

Scenario 1: Pre-update audit — list all outdated plugins

wp plugin list --update=available --fields=name,version,update_version --format=table

Scenario 2: Export plugin list for documentation / client report

wp plugin list --fields=name,status,version --format=csv > plugins_$(date +%Y%m%d).csv
cat plugins_$(date +%Y%m%d).csv

Scenario 3: Get list of active plugin slugs for a script

ACTIVE_PLUGINS=$(wp plugin list --status=active --field=name)
echo "Active plugins:"
echo "${ACTIVE_PLUGINS}"

Scenario 4: Check if a specific plugin is installed and active

if wp plugin list --field=name | grep -q "^woocommerce$"; then
STATUS=$(wp plugin status woocommerce --format=json | python3 -c "import sys,json; d=json.load(sys.stdin); print(d.get('status',''))")
echo "WooCommerce status: ${STATUS}"
else
echo "WooCommerce is not installed"
fi

Scenario 5: Find plugins with auto-updates disabled

wp plugin list --fields=name,auto_update --format=csv | grep ",off"

Scenario 6: Multi-site — list network-activated plugins

wp plugin list --network --status=active

Best Practices

  1. Run before every update cycle — know which plugins need updating and which are already current.
  2. Use --field=name in scripts instead of parsing table output.
  3. Use --skip-update-check when you only need status info — it skips the WordPress.org API call and is much faster.
  4. Export CSV for client audits--format=csv works well with spreadsheets.
  5. Check for must-use plugins with --status=must-use — they can't be deactivated from the dashboard.

Troubleshooting

ProblemCauseFix
Slow commandUpdate check calls WordPress.org API for each pluginAdd --skip-update-check
Plugin not showing in listPlugin folder present but no main fileCheck the plugin folder for a valid PHP header
update=available but no update_versionWordPress.org API rate limitedWait and retry

Quick Reference

wp plugin list                                  # All plugins
wp plugin list --status=active # Active only
wp plugin list --status=inactive # Inactive only
wp plugin list --update=available # With available updates
wp plugin list --field=name # Names only (for scripts)
wp plugin list --format=json # JSON output
wp plugin list --format=count # Count only
wp plugin list --skip-update-check # Fast (no API call)

Next Steps