WordPress multisite allows plugins and themes to be Network Active. This prevents them from being deactivated on any site in the network.
To change a plugin from Network Active on every site to individually active on each site:
- Manually Network Deactivate the plugin from the network plugins page. The
wp networkcommand does not yet support plugin deactivation.
- Connect to the server via SSH and run this WP CLI command:
wp site list --field=url | xargs -n1 -I % wp --url=% plugin activate hello.php(where hello.php is the plugin file or folder name)
What does the command do?
wp site list --field=url produces a list of URLs for all of the sites on the network.
| operator passes the results from
wp site list to
xargs can take the output from one command and send it to another command as parameters.
-n1 flag to xargs processes each line of output from the site list command one at a time.
-n2 would send two site URLs to the next command.
wp --url=% plugin activate hello.php is the command to which xargs is passing the site URLs. It activates the Hello Dolly plugin on each site specified by URL. The % sign is our replacement character where each URL will populate.