Skip to main content

wp user list

Overview

List and query all WordPress users. Filter by role, search by field, format output as table, JSON, or CSV — a key tool for security audits, reporting, and scripting bulk user operations.

What It Does​

wp user list queries the wp_users table and outputs configured fields. Every output format is machine-readable for piping into other commands.

Syntax​

wp user list [OPTIONS]

Arguments & Options​

FlagDescription
--role=ROLEFilter by role (e.g. administrator, editor)
--fields=FIELDSComma-separated fields to display
--field=FIELDOutput a single field value per line (for scripting)
--format=FORMATOutput format: table (default), json, csv, yaml, ids
--search=PATTERNSearch login, email, URL, name
--orderby=FIELDSort by field (e.g. registered, login)
--order=ASC_OR_DESCSort direction
--number=NMax number of users to return
--exclude=IDSComma-separated user IDs to exclude

Basic Usage​

List all users (default table)​

wp user list

List only administrators​

wp user list --role=administrator

Custom fields output​

wp user list --fields=ID,user_login,user_email,roles --format=table

Get only user IDs (for scripting)​

wp user list --role=subscriber --field=ID

Export as JSON​

wp user list --format=json > all-users.json

Export as CSV​

wp user list --fields=ID,user_login,user_email,roles --format=csv > users-export.csv

Real-World Scenarios​

Scenario 1: Security audit — list all admins​

wp user list --role=administrator \
--fields=ID,user_login,user_email,user_registered \
--format=table

Scenario 2: Find users registered in a date range​

wp user list --fields=ID,user_login,user_registered \
--orderby=registered \
--order=desc \
--number=50 \
--format=table

Scenario 3: Export subscriber list for email tool​

wp user list --role=subscriber \
--fields=user_email,display_name \
--format=csv > subscribers.csv

Scenario 4: Count users per role​

for role in administrator editor author contributor subscriber; do
COUNT=$(wp user list --role="$role" --field=ID | wc -l)
echo "$role: $COUNT"
done

Best Practices​

  1. Use --field=ID in loops instead of --format=ids for wider compatibility.
  2. Use --format=json when exporting for downstream processing.
  3. Use --number to limit large datasets during testing.
  4. Use --fields to only request what you need — speeds up output on large sites.

Quick Reference​

wp user list # All users, default table
wp user list --role=administrator # Filter by role
wp user list --field=user_login # One field per line
wp user list --fields=ID,user_login,user_email,roles --format=csv
wp user list --format=json > users.json

Next Steps​