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
| Flag | Default | Description |
|---|---|---|
--field=FIELD | — | Output a single field value per line (e.g. name) |
--fields=FIELDS | All fields | Comma-separated list of fields to display |
--format=FORMAT | table | Output: table, json, csv, yaml, count, ids |
--status=STATUS | all | Filter by active, inactive, dropin, must-use |
--network | — | List network-activated plugins (multisite) |
--skip-update-check | — | Skip checking for available updates (faster) |
Default Fields
| Field | Description |
|---|---|
name | Plugin slug |
status | active, inactive, must-use, dropin |
update | available, none, version higher than expected |
version | Installed version |
update_version | Available new version (if update exists) |
auto_update | on / 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
- Run before every update cycle — know which plugins need updating and which are already current.
- Use
--field=namein scripts instead of parsing table output. - Use
--skip-update-checkwhen you only need status info — it skips the WordPress.org API call and is much faster. - Export CSV for client audits —
--format=csvworks well with spreadsheets. - Check for must-use plugins with
--status=must-use— they can't be deactivated from the dashboard.
Troubleshooting
| Problem | Cause | Fix |
|---|---|---|
| Slow command | Update check calls WordPress.org API for each plugin | Add --skip-update-check |
| Plugin not showing in list | Plugin folder present but no main file | Check the plugin folder for a valid PHP header |
update=available but no update_version | WordPress.org API rate limited | Wait 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
wp plugin status— detailed info about a specific plugin.wp plugin update— update all or specific plugins.wp plugin activate— activate inactive plugins.