WP-CLI: The Essential Commands Reference

WP-CLI is the command-line interface for WordPress. Instead of clicking through the admin dashboard, you can update plugins, manage users, run database operations, and deploy sites from the terminal. WP-CLI 2.0 was released in 2018 and supports WordPress 3.7 and up.

Problem: Managing WordPress from the admin dashboard — activating plugins, checking updates, running database operations — is slow and impractical when you need to automate tasks or work over SSH.

Solution: Use WP-CLI to run any WordPress operation from the command line. The reference below groups the most frequently used commands by category: core, plugins, themes, users, database, and cron.

Core management:

# Check WP-CLI version and WordPress version
wp --version
wp core version

# Download WordPress core
wp core download --locale=en_US

# Install WordPress (creates wp-config.php and runs the installer)
wp core install   --url="https://example.com"   --title="My Site"   --admin_user="admin"   --admin_email="admin@example.com"   --admin_password="secret"

# Update WordPress core
wp core update

# Check for available updates
wp core check-update

Plugin and theme management:

# List all plugins with status
wp plugin list

# Install and activate
wp plugin install contact-form-7 --activate

# Update all plugins
wp plugin update --all

# Deactivate and delete
wp plugin deactivate my-plugin
wp plugin delete my-plugin

# Same commands work for themes
wp theme list
wp theme install twentynineteen --activate

Database and options:

# Search and replace in the database (handles serialized data correctly)
wp search-replace 'http://staging.example.com' 'https://example.com' --skip-columns=guid

# Export / import the database
wp db export backup.sql
wp db import backup.sql

# Get/set options
wp option get siteurl
wp option update blogname "My New Site Name"

# Flush rewrite rules and cache
wp rewrite flush
wp cache flush

User management:

# List users
wp user list --fields=ID,user_login,user_email,roles

# Create a new admin user
wp user create editor editor@example.com --role=editor

# Reset a password
wp user update 1 --user_pass="newpassword"

# Generate a one-time login URL (great for debugging without knowing the password)
wp user session destroy --all 1
wp user reset-password 1

NOTE: Always run wp search-replace with --dry-run first to preview changes before applying them. The --skip-columns=guid flag prevents changing the guid column, which should never be altered after a post is created.