WP-CLI
WP-CLI (WordPress Command Line Interface) is a powerful tool for managing a WordPress installation directly from the command line or terminal. Instead of using the standard WordPress dashboard, you can execute commands to perform tasks like updating plugins, managing themes, and configuring settings, all from your terminal.
There are a number of benefits to using WP-CLI, including:
- Speed: Performing tasks using the command line is often faster than navigating through the WordPress admin interface, especially for repetitive tasks.
- Automation: WP-CLI can be integrated into scripts for automated workflows.
- Remote Management: WP-CLI allows you to manage WordPress sites remotely.
- Flexibility: The ability to execute commands and scripts provides a level of control and customization.
Access WP-CLI on Kinsta
WP-CLI v2 is installed by default on all of our servers. To access WP-CLI, you must connect to your server with SSH and navigate to your site’s document root. Kinsta provides SSH access with all of our Managed WordPress Hosting plans.
1. Connect to your server with SSH
The easiest method for connecting via SSH is to use a username and password. The steps to connect vary depending on your operating system.
Windows
Windows users require a terminal client to connect to SSH. We recommend downloading the free PuTTY client using the .msi installer.
- Launch PuTTY and enter your Host IP Address and the unique Port number (both found in MyKinsta > Sites > sitename > Info > SFTP/SSH). Then click Open.
- If this is your first time connecting, you will most likely see a rsa2 key prompt. Click Yes, and this will trust the host in the future.
- In the terminal screen, enter your Kinsta username (found in MyKinsta > Sites > sitename > Info > SFTP/SSH) and press Enter.
- Enter your Kinsta password (found in MyKinsta > Sites > sitename > Info > SFTP/SSH) and press Enter again.
You’re now connected via SSH to your WordPress site.
Mac/Linux
- Open a new terminal from Applications > Utilities > Terminal.
- In MyKinsta, navigate to Sites > sitename > Info > SFTP/SSH, and on the SSH terminal command click Copy to clipboard.
- Paste the SSH terminal command into the terminal and press Enter.
- Enter your Kinsta password (found in MyKinsta > Sites > sitename > Info > SFTP/SSH) and press Enter again.
You’re now connected via SSH to your WordPress site.
2. Navigate to your site’s document root
To run WP-CLI commands, you must first navigate to your site’s document root; this is where your WordPress files (such as wp-config.php
, wp-content
, wp-admin
, and wp-includes
) are located. To navigate to your site’s document root on Kinsta, enter the following command:
cd public
You can now use WP-CLI commands on your WordPress installation hosted on Kinsta. For a full list of available WP-CLI commands, refer to the WordPress developer documentation.
Useful WP-CLI Commands
The following is a list of WP-CLI commands you may find helpful. For a full list of available WP-CLI commands, including global parameters and options, refer to the WordPress developer documentation.
Useful options
The following is a list of useful options you can add to the end of your commands:
--skip-themes
: This prevents WordPress themes from loading when you execute a WP-CLI command. This is useful if there is an issue in one of the themes that causes conflicts with WP-CLI commands.--skip-plugins
: This prevents WordPress plugins from loading when you execute a WP-CLI command. This is useful if there is an issue in one of the plugins that causes conflicts with WP-CLI commands.--all
: This applies a command to all relevant items. For example, if you want to update all plugins or users.--dry-run
: This can be used to simulate the execution of a command without making any actual changes. It shows you what would happen if the command were executed, but it won’t perform any of the actions. For example, if you run a search and replace, update all plugins, or bulk delete posts.--format=<format>
: Specifies the output format when exporting data. For example, when you runwp plugin list
orwp user list
you may want this intable
,json
, orcsv
format.
Plugins
View a list of plugins
View a list of installed plugins with the following command:
wp plugin list
Activate a plugin
To activate a plugin, use the following command, replacing $plugin
with the name of the plugin from the wp plugin list
.
wp plugin activate $plugin
Deactivate a plugin
To deactivate a plugin, use the following command, replacing $plugin
with the name of the plugin from the wp plugin list
.
wp plugin deactivate $plugin
Update a specific plugin
To update a plugin, use the following command, replacing $plugin
with the name of the plugin from the wp plugin list
.
wp plugin update $plugin
Update all plugins
wp plugin update --all
Roll back a plugin
If you update a plugin that then breaks something on your site, you can roll it back by installing a specific version using the following command, replacing $plugin
with the name of the plugin from the wp plugin list
and $version
with the required version number.
wp plugin update $plugin --version=$version
URLs
Set the home URL
To set the URL for your home page, use the following command, replacing $URL
with the required URL.
wp option update home '$URL'
Set the site URL
To set the site URL, use the following command, replacing $URL
with the required URL.
wp option update siteurl '$URL'
Users
List all WordPress users
View a list of all WordPress users with the following command:
wp user list
Create a new user
To create a new user, use the following command, replacing $username
and $emailaddress
with the user’s credentials, and $role
with the role you want to assign the new user to, for example, administrator.
wp user create $username $emailaddress -–role=$role
Reset a user’s password
To reset a user’s password, use the following command, replacing $username
with the required username from the wp user list
.
wp user reset-password $username
Update a user’s details
To update a user, use the following command, replacing $user
with the required username from the wp user list
, $field
with the field you want to update, and $value
with the new data you want to enter.
wp user update $user -—$field=$value
Cache
To use the clear cache commands listed below, the Kinsta Must Use (MU) plugin must be installed on the site.
Clear all cache
To clear all cache, including site cache, edge cache, CDN cache, and Redis cache, use the following command:
wp kinsta cache purge --all
Clear the full-page cache and edge cache
To clear the full-page cache and the edge cache, use the following command:
wp kinsta cache purge
Clear site cache without clearing edge cache
To only clear the site cache, use the following command:
wp kinsta cache purge --site
Clear the CDN cache
To only clear the CDN cache, use the following command:
wp kinsta cache purge --cdn
Clear Redis cache
To only clear the Redis cache, use the following command:
wp kinsta cache purge --object
Flush object cache
Flush your site’s object cache with the following command:
wp cache flush
This may lead to a slight increase in load times temporarily as the cache rebuilds.
Search and replace
When running any search and replace on your WordPress site, we recommend backing up and using the --dry-run
option to see what will be replaced before executing the command.
Replace old domain with new domain
To replace an old URL with a new URL, use the following command, replacing $old-domain
with the URL you want to replace and $new-domain
with the URL you want to replace it with:
wp search-replace '$old-domain' '$new-domain' --skip-columns=guid
--skip-columns=guid
is recommended to avoid accidentally altering URLs stored as unique identifiers in the database’s guid
column, which could break post URLs. This command can also be used to replace email address domains.
Replace HTTP with HTTPS
To update your URLs from HTTP to HTTPS, use the following command:
wp search-replace 'http://' 'https://' --skip-columns=guid
--skip-columns=guid
is recommended to avoid accidentally altering URLs stored as unique identifiers in the database’s guid
column, which could lead to issues with media attachments.
Troubleshooting
If you have issues running commands in WP-CLI, this may be due to a theme or plugin experiencing a fatal error. You can add the following to your WP-CLI command to skip loading themes and plugins:
--skip-themes --skip-plugins
For example, to get a list of users and skip the themes and plugins, you can run the following:
wp user list --skip-themes --skip-plugins
If you want to skip specific plugins, you can use the following, replacing $plugin
with the plugin name and using a comma to separate each plugin:
--skip-plugins=$plugin,$plugin
For example:
wp user list --skip-plugins=wordpress-seo,wordfence