Skip to main content

Create, Update, Delete Users

Overview

User management is one of the highest-impact WP-CLI skills. You can onboard staff, reset credentials, assign roles, and safely offboard users in seconds, even when wp-admin is inaccessible.

Understanding User CRUD in WP-CLI

WP-CLI gives direct control over user records and role assignments from the terminal. Core user workflows include:

  • Create users for onboarding and site setup
  • Update user fields (email, password, display name, URL)
  • Delete users safely while reassigning content
  • Adjust permissions with role commands
  • Automate repetitive operations in scripts

Prerequisites

Before making user changes:

# Confirm you're in the correct WordPress install
wp core is-installed

# Review existing users
wp user list --fields=ID,user_login,user_email,roles --format=table

# Recommended before bulk changes
wp db export "backup-users-$(date +%Y%m%d-%H%M).sql"
Production Safety

For delete or role changes at scale, run on staging first and keep a fresh database backup.

Create Users

Create a Single User

# Create editor with generated password
wp user create editor1 editor1@example.com --role=editor

# Create admin with explicit password
wp user create ops-admin ops@example.com --role=administrator --user_pass='StrongPassword!42'

Create with Additional Profile Fields

wp user create sarah sarah@example.com \
--role=author \
--first_name="Sarah" \
--last_name="Nolan" \
--display_name="Sarah Nolan" \
--user_url="https://example.com/team/sarah"

Generate Bulk Test Users

# Generate 25 subscribers for staging/testing
wp user generate --count=25 --role=subscriber

Update Users

Update Common User Fields

# Update by ID
wp user update 12 --user_email='new-email@example.com'

# Update by login
wp user update john --display_name='John Carter'

# Rotate password
wp user update john --user_pass='N3wStrongPass#2026'

Promote or Demote Roles

# Replace current role with a new role
wp user set-role john administrator

# Add a secondary role
wp user add-role john shop_manager

# Remove a secondary role
wp user remove-role john shop_manager
Role Commands

Use set-role to replace a role, and add-role / remove-role when you need multi-role control.

Delete Users Safely

# Reassign all content from 'jane' to user ID 1
wp user delete jane --reassign=1

Delete Multiple Users

# Delete multiple users and reassign content
wp user delete test1 test2 test3 --reassign=1

Delete Without Reassign (Destructive)

# Permanently removes associated content
wp user delete spam-user
Use --reassign Whenever Possible

Deleting an author without reassignment can remove or orphan content depending on context. Always choose a valid owner first.

High-Value User Commands

TaskCommandWhy It Matters
Create userwp user create LOGIN EMAIL --role=ROLEFast onboarding
Update userwp user update ID_OR_LOGIN_OR_EMAIL --user_email=EMAILCorrect account data
Reset passwordwp user update USER --user_pass='PASS'Incident response
Delete userwp user delete USER --reassign=IDSafe offboarding
Check userwp user get USERQuick audit/details
List by rolewp user list --role=administratorSecurity and governance

Real-World Scenarios

Scenario 1: New Site Team Onboarding

# Create baseline team members
wp user create owner owner@example.com --role=administrator --user_pass='Owner!Pass2026'
wp user create editor editor@example.com --role=editor
wp user create writer writer@example.com --role=author

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

Scenario 2: Emergency Credential Rotation

# Rotate passwords for sensitive accounts
wp user update admin --user_pass='Admin!Rotate2026'
wp user update ops-admin --user_pass='Ops!Rotate2026'

# Confirm users still exist
wp user get admin --field=user_email
wp user get ops-admin --field=user_email

Scenario 3: Offboarding a Content Author

# Move all content to active managing editor (ID 7)
wp user delete former-author --reassign=7

# Confirm deletion
wp user list --field=user_login | grep former-author || echo "User removed"

Scenario 4: Bulk Role Standardization

#!/bin/bash
# set-all-contributors-to-author.sh

for user in $(wp user list --role=contributor --field=user_login); do
wp user set-role "$user" author
done

wp user list --role=author --fields=user_login,roles --format=table

Best Practices

1. Backup Before Bulk Changes

wp db export "backup-before-user-bulk-$(date +%Y%m%d-%H%M).sql"

2. Prefer Principle of Least Privilege

Use subscriber, contributor, author, editor where possible; reserve administrator for trusted operators.

3. Always Reassign Content on Delete

wp user delete old-author --reassign=1

4. Audit Admin Accounts Regularly

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

5. Script Repetitive Operations

Repeatable scripts reduce manual errors during onboarding/offboarding.

Troubleshooting

User Creation Fails

# Check for duplicate login or email
wp user list --fields=user_login,user_email --format=table

# Retry with a unique login/email
wp user create newlogin unique@example.com --role=subscriber

Cannot Update/Delete User

# Verify target user exists
wp user get target-user

# Verify your current WordPress context
wp option get siteurl

Wrong Site in Multisite

# Scope command to the correct subsite
wp --url=subsite.example.com user list --role=administrator

Quick Reference

# Create
wp user create <login> <email> --role=<role>
wp user generate --count=<n> --role=<role>

# Update
wp user update <user> --user_email=<email>
wp user update <user> --user_pass='<new-password>'
wp user set-role <user> <role>
wp user add-role <user> <role>
wp user remove-role <user> <role>

# Delete
wp user delete <user> --reassign=<user-id>

# Verify
wp user get <user>
wp user list --role=administrator --format=table

Comparison: WP-CLI vs wp-admin

TaskWP-CLIwp-admin
Create 10 usersSeconds (scriptable)Manual and slow
Rotate passwordsFast, batch-friendlyOne-by-one
Delete + reassignOne commandMulti-step UI flow
Works when wp-admin is downYesNo
Repeatable automationExcellentLimited
Key Takeaway

WP-CLI is the fastest and most reliable path for operational user management, especially for bulk changes, incident response, and scripted workflows.

Next Steps