Managing a client site with a multitude of administrators can be a challenging task, especially when it comes to maintaining security and control. While having hundreds of administrators may pose a security risk, sometimes it’s more practical to grant them administrator access and then restrict their capabilities. So how do you simplifying plugin and theme updates for multi-administrator WordPress sites using wp-cli?
simplifying plugin and theme updates
In this blog post, I’ll share a simple solution that allows you to manage plugin and theme updates efficiently while maintaining control over your WordPress site.
To achieve this, I’ve bundled all the necessary functionality into a custom plugin. This plugin takes care of adjusting the capabilities of administrators upon activation, ensuring that they have the appropriate permissions. Without delving into the technicalities of how this is achieved, let’s focus on simplifying plugin and theme updates for multi-administrator solution itself.
One challenge that arises from restricting capabilities is that it can affect the ability to update themes and plugins. While auto-updates can be enabled, this might not be suitable for all situations, particularly when dealing with complex custom plugins that require firstly, updating supporting plugins secondly, running regression testing before deployment. To address this issue, I’ve created a convenient solution using the command-line interface for WordPress (wp-cli) and shell scripting.
Here’s a simple shell script that you can use to streamline the process:
wp user add-cap 1 install_plugins # adds capability to a user with an ID of 1 wp user add-cap 1 update_plugins # adds capability to a user with an ID of 1 wp user add-cap 1 install_themes # adds capability to a user with an ID of 1 wp user add-cap 1 update_themes # adds capability to a user with an ID of 1 wp core update # update core wp plugin update --all # updates all plugins wp theme update --all # update all themes wp user remove-cap 1 install_plugins # remove capability from a user with an ID of 1 wp user remove-cap 1 update_plugins # remove capability from a user with an ID of 1 wp user remove-cap 1 install_themes # remove capability from a user with an ID of 1 wp user remove-cap 1 update_themes # remove capability from a user with an ID of 1
To use this script, make sure you have a basic understanding of shell scripting and have wp-cli installed on your system. Bundle the provided commands into a .sh file, in this example I’ve named my file yourscript.sh, to execute it from the commandline use
$ sh yourscript.sh command whenever you need to perform updates.
Here’s how the script works:
- The first four lines add the necessary capabilities (install_plugins, update_plugins, install_themes, update_themes) to a user with an ID of 1. Adjust the user ID according to your needs.
wp core updatecommand updates the WordPress core to the latest version.
wp plugin update --allcommand updates all plugins on your site.
wp theme update --allcommand updates all installed themes.
- The last four lines remove the previously granted capabilities from the user with an ID of 1.
By running this script, you can ensure that the necessary updates are performed while maintaining control over the capabilities of your administrators. It provides a convenient way to update plugins, themes, and the WordPress core without compromising security or risking compatibility issues.
Remember to customise the script according to your specific needs and user configurations. With a little shell scripting knowledge and familiarity with wp-cli, you can simplify the update process for multi-administrator WordPress sites and ensure a smooth and secure maintenance workflow.
So there you have it, you to can now improve security by simplifying plugin and theme updates for multi-administrator WordPress sites using wp-cli
Please note that proper backup and testing procedures should always be followed before applying any updates to your production environment.