Real-world testing of BuddyPress WP-CLI commands

A few years ago, I started a wp-cli-buddypress project. I occasionally added commands that were useful to me personally, but didn’t pretend to have anything close to complete coverage. A few months ago, Renato Alves (@espellcaste) contacted me to see whether he could help flesh out some of the missing commands. We moved the repo to the official BuddyPress GitHub account, opened a BP ticket to track the potential integration of the commands into BP itself, and got to work.

Since that time, Renato and I have done extensive work to bring basic CLI commands to all the main components of BuddyPress. Specifically, we have CRUD commands for all major content types, as well as a few helpful utility methods. The list of supported commands is too long to list here – you can explore by typing <code>wp bp</code> and digging down through the tree – but here’s a very brief summary:

  • activity – CRUD commands, comment management, favorite management, spam/unspam
  • core – Component activation and deactivation
  • group – CRUD commands, member listing and management, invitation management
  • member – bulk generation
  • signup – CRUD commands, activation, resending
  • tool – commands for running any BP repair tool
  • xprofile – CRUD commands for groups, fields, and user data

While there’s more to build – and refinements to be made – we’re at a point where we need real-world testing and feedback. If you are a BP developer, or administer BP-powered sites, and if you use WP-CLI, please install wp-cli-buddypress today and start using it.

There are numerous ways to install a wp-cli package, but because this one is in development, we encourage you to get a repo checkout. Something like:

$ git clone ~/.wp-cli/commands

and then add the path to wp-cli-buddypress/wp-cli-bp.php to the commands subsection of your wp-cli config file

Questions to consider while using the commands:

  • Are the commands named in a way that makes sense? Note that in some cases, commands have aliases (eg wp bp group create and wp bp group add).
  • Think about argument patterns across the commands, and whether they are consistent and make sense. Some commands take certain positional arguments (wp bp group get my-group) while others require named arguments (wp bp xprofile data get --user-id=5 --field-id=10)
  • What major features are missing?

For specific issues, you’re encouraged to open a GitHub ticket: For high-level discussions, you can open a GitHub ticket, leave a comment here, or drop into the #buddypress channel on Slack.

And for the truly intrepid: Contributions are encouraged! We’ve worked hard to ensure 100% Behat test coverage, which makes writing new commands fun.