WP-CLI is a command-line tool that lets you accomplish a wide array of WordPress development tasks from within the command line. This means no breaking focus and less wasted time.

Below is a list that I have comprised of some of the WP-CLI commands that I use the most during day-to-day support operations.

This list assumes that you have a basic understanding of SSH and running commands in a terminal/shell. It is ALWAYS recommended to make a backup of your site’s files and database before running any of these commands.

WP CORE

Core Download:

wp core download --force

Core Download with Version Flag:

wp core download --force --version=

Generate WP Config:

wp config create --dbname=testing --dbuser=wp --dbpass=securepswd

THEMES AND PLUGINS

Force Re-install ALL Plugins:

wp plugin install $(wp plugin list --field=name) --force

Force Re-install ALL themes:

wp theme install $(wp theme list --field=name) --force

Force Re-install specific list of plugins/themes:

wp plugin install --force plugin1 plugin2 --skip-plugins --skip-themes && wp theme install --force theme1 theme2 --skip-plugins --skip-themes

DATABASE MANIPULATION

Check Database Size

wp db size --human-readable --skip-themes --skip-plugins

Export Full Database:

wp db export

Export WooCommerce Orders

wp export --post__in=$(wp eval 'foreach( get_posts(array("post_type" => "shop_order", "posts_per_page" => -1, "fields" => "ids")) as $id ) { echo $id. ","; }') --max_file_size=200

Delete All WooCommerce Orders

wp post delete $(wp post list --field=ID --post_type="shop_order") --force

Delete WooCommerce Customers

wp user delete $(wp user list --role=customer --field=ID) --reassign=2

Delete Transients

wp transient delete --all

Update WordPress Database

wp core update-db

ENUMERATION

Get Post Info By Post ID

wp post get post-id-number

ADMINISTRATION

Delete User:

wp user delete <id>

Add Admin User:

wp user create user-name [email protected] --role=administrator

Change/Update Password:

List users to view the user ID

wp user update id --user_pass=password 

Force Password Reset

Without Email:

wp user reset-password --skip-email

With Email:

 wp user reset-password <user-id>

Set User Role:

wp user set-role 12 administrator

User Roles:administrator contributor author

Reset All User Roles to Default

wp role reset --all

Delete Spam Comments:

wp comment delete $(wp comment list --status=spam --format=ids)

Delete All Comments:

wp comment delete $(wp comment list --status=hold --format=ids)

Shuffle Salts

wp config shuffle-salts

MULTISITE

Get Site List:

wp site list

Get Site URL:

wp option get siteurl

List Super Admins:

wp super-admin list

List ALL users in Multisite:

wp user list --network

Assign Super Admin Role:

wp user set-role [user-ID] super-admin