WP-CLI User Commands
User commands manage WordPress users from the terminal — creating, updating, deleting, changing roles, and resetting passwords. Useful for onboarding, scripted environment setup, and bulk user operations.
Commands
wp user list
Lists all WordPress users with ID, login, email, role, and registration date.
wp user list
wp user list --role=administrator
wp user list --role=editor
wp user list --format=json
wp user list --fields=ID,user_login,user_email,roles
Use --role to filter by role. Use --fields to limit output columns. Useful for auditing who has admin access before a security review.
wp user create
Creates a new WordPress user.
wp user create john john@example.com --role=editor
wp user create admin admin@example.com --role=administrator --user_pass=secret
wp user create author author@example.com --role=author --send-email
Requires username and email as positional arguments. --role defaults to subscriber if omitted. --send-email sends a welcome email with login credentials. --user_pass sets the password directly — omit it to let WordPress generate one.
wp user update
Updates an existing user’s data or role.
wp user update 1 --display_name="John Doe"
wp user update john --user_email=newemail@example.com
wp user update john --role=administrator
wp user update 1 --user_pass=newpassword
Accepts user ID or login as identifier. Use to promote users, fix emails, or reset passwords without going through the admin panel.
wp user delete
Deletes a WordPress user.
wp user delete 3
wp user delete john --reassign=1
wp user delete 3 4 5
--reassign transfers the deleted user’s posts to another user by ID. Without it, posts become unassigned. Always use --reassign on editorial sites to avoid orphaned content.
wp user get
Returns details about a specific user.
wp user get john
wp user get 1
wp user get john --format=json
wp user get john --fields=ID,user_login,user_email,roles
Useful in scripts that check user state before performing operations.
wp user meta get / set / delete
Manages user meta fields directly.
wp user meta get 1 _capabilities
wp user meta set 1 my_custom_field "value"
wp user meta delete 1 my_custom_field
wp user meta list 1
Direct access to wp_usermeta table. Use when plugins store settings in user meta and you need to update them in bulk or during migrations.
wp user add-role / remove-role
Adds or removes a role from a user without replacing existing roles.
wp user add-role 1 editor
wp user remove-role 1 editor
WordPress supports multiple roles per user. This is different from wp user update --role which replaces the role entirely. Use when a user needs permissions from two roles simultaneously.
wp user set-role
Sets the user’s role, replacing any existing roles.
wp user set-role 1 administrator
wp user set-role john subscriber
Replaces all current roles with the specified one. Use when you want a clean role assignment.
wp user reset-password
Sends a password reset email to a user.
wp user reset-password john
wp user reset-password 1 2 3
Triggers the standard WordPress password reset flow. Useful when onboarding users or recovering access without setting a password directly.
wp user import-csv
Bulk creates or updates users from a CSV file.
wp user import-csv users.csv
wp user import-csv users.csv --send-email
CSV must include at minimum user_login and user_email columns. Optional columns: role, display_name, user_pass. --send-email sends welcome emails to all imported users. Essential for large-scale user onboarding.
Common Workflows
Create admin user for new environment
wp user create devadmin dev@local.test \
--role=administrator \
--user_pass=localpass
Quick admin setup when provisioning a local or staging environment. Faster than going through the installer.
Audit administrator accounts
wp user list --role=administrator --fields=ID,user_login,user_email,user_registered
See who has admin access and when their account was created. Run before a security review or before handing a site to a client.
Bulk import users from CSV
# users.csv format:
# user_login,user_email,role,display_name
# john,john@example.com,editor,John Doe
wp user import-csv users.csv --send-email
Onboard large groups of users without manual entry. Useful for editorial teams, course platforms, or membership sites.
Demote all editors to subscribers
wp user list --role=editor --field=ID | xargs -I {} wp user set-role {} subscriber
Pipe user IDs from wp user list into wp user set-role. Pattern for bulk role changes across many users.
Reset user password directly
wp user update john --user_pass=temporarypass123
Faster than the admin panel when a developer needs to quickly restore access during debugging.
Related Command Groups
- Core — install WordPress and set the first admin user
- Database — export before bulk user operations
- Cache — flush after role or capability changes
Practice Cases
- Deploy a new WordPress site (coming soon)
- WordPress maintenance workflow (coming soon)