2019-07-09 13:56:32 8 Comments
I am trying to loop through all sites on a multisite network, and for each site, delete all subscriber users. I have tried this WP-CLI command:
wp site list --field=url | xargs -n 1 -I ^ wp user list --url=^ --role=subscriber --field=ID | xargs -n 2 -I % ^ wp user delete % --url=^ --reassign=4
I can't find a way to pass the ^
value to the second xargs command. Anyone?
Related Questions
Sponsored Content
1 Answered Questions
[SOLVED] Possible to have duplicate usernames on different two multisites
- 2018-09-25 09:32:34
- markb
- 58 View
- 0 Score
- 1 Answer
- Tags: multisite users user-registration
1 Answered Questions
[SOLVED] Can wp-cli display all users and their roles across all sites in a multisite instance?
- 2017-08-07 18:57:07
- nic
- 770 View
- 2 Score
- 1 Answer
- Tags: multisite user-roles wp-cli multisite-user-management
1 Answered Questions
[SOLVED] Custom column under All Users (multisite network admin)?
- 2018-04-04 15:48:48
- jockebq
- 255 View
- 2 Score
- 1 Answer
- Tags: customization multisite
1 Answered Questions
[SOLVED] Execute wp-cli command on all sites on server
- 2016-11-01 11:30:52
- consc198
- 177 View
- 2 Score
- 1 Answer
- Tags: wp-cli
1 comments
@Tom J Nowell 2019-07-09 14:52:44
xargs is unnecessary, something similar to this will do the job without any piping or
xargs
:@photocurio 2019-07-09 18:55:31
Its been a while since I wrote a bash script, but why not? This is the script that works for me (maybe you can't put in line breaks in a comment?):
#!/bin/bash sites=$(wp site list --field=url) for site in $sites do users=$(wp user list --url=$site --role=subscriber --field=ID) for user in $users do wp user delete $user --url=$site --reassign=4 done done