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=FIELD—Output 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
--network—List network-activated plugins (multisite)
--skip-update-check—Skip 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​