BuddyPress 1.7: Theme independence, BP_User_Query, and what else to expect


BuddyPress and WordPress buttons

Word of what to expect from BuddyPress 1.7 has been trickling in, and while it’s not quite here yet there’s a lot to get excited about. Brand new users should pay attention, but longtime users may be the most excited by what’s on the way.

At last month’s WordPress NYC Meetup the lead developer of the BuddyPress project, Boone Gorges, led the group in a presentation showing off what can be expected in the next major version of the popular social plugin. Let’s take a look.

BuddyPress themes? How about all the themes?

The biggest leap forward for the BuddyPress project may end up being the headline improvement in 1.7: theme independence. Currently in order to take advantage of BuddyPress properly you have a few options:

  1. use the BuddyPress default theme as it is or modify it,
  2. search for a BuddyPress theme (which is likely a modified version of the BuddyPress default theme already), and
  3. take the time to add the necessary BuddyPress files to the theme you’re already using, possibly using the BuddyPress Template Pack.

Anyone who has gone down that third road can attest to the often frustrating experience that follows. Even sticking with number two, the reality is that a shocking number of theme developers have resisted making BuddyPress themes at all. This is at least in part due to the additional template files and styles that are necessary to properly integrate with the plugin.

On this topic I tend to share BuddyPress Lead Developer Boone Gorges’ sentiment when he says, “I never found BuddyPress theme development that frustrating. The thing that I’ve heard countless times is ‘ugh, there are so many files, it’s so confusing. I’m just a theme developer, I’m not a plugin developer.’ I’ve heard it, and I’m annoyed by it.” He continues, “But it’s fine. It is more complicated than a WordPress theme, and the reason it’s more complicated than a WordPress themes is because there are lots of different kinds of content.”

“‘There are so many files, it’s so confusing.’ I’ve heard it, and I’m annoyed by it.”

Suffice it to say this level of complexity will no longer be an excuse theme developers can use. With BuddyPress 1.7 any properly constructed theme (in other words it passes the most basic tests of WordPress theme sanity) will work with BuddyPress. Take a second and read that sentence again.

Every WordPress theme will become a BuddyPress theme after 1.7.

“The way that we make this work is It feels like magic when you use it,” Gorges said. “It is kind of like magic, like voodoo magic. The kind that you probably don’t want to know too much about.”

How does this happen exactly? BuddyPress 1.7 will utilize output buffering and a few included styles to bring a default uniform template into otherwise standard WordPress theme pages. While this shouldn’t relieve a theme developer from taking BuddyPress into account, it will provide a nice jumpstart to building full featured support into themes. Best of all, for users this means any WordPress theme on the market should soon double as a BuddyPress theme without any work at all.

Of course this doesn’t mean themes previously built with the added templates or manual BuddyPress support will stop working. This convenience is entirely backwards compatible with earlier themes.

Freelancer and BuddyPress developer David Bisset and I discussed precisely this during WPCandy Podcast #36 if you’re interested in a bit more discussion on the topic.

Bid the installation wizard farewell

For the last few releases of BuddyPress, the first-time activation of the plugin would prompt an installation wizard. A few steps were necessary before BuddyPress would fully activate. For instance the plugin asks that “pretty permalinks” be enabled and lists the enabled and disabled components.

Referring to this process in particular, Gorges said, “If you are just somebody who’s looking to set up your club for people who knit sweaters with dogs on them, and you’re asked about pretty permalinks, you’re just like ‘What?’ And then you go just use Ning or something.”

BuddyPress installation wizard pre-1.7

The installation wizard prompts user to set up pages and tweak permalink settings, among others. The BuddyPress team have determined these are too confusing, and are removing the wizard entirely from 1.7.

Despite the wizard having good intentions, in order to improve the BuddyPress experience the team axed it in the new version. Beginning with 1.7 BuddyPress will automatically set itself up for you when it activates.

In addition only the profiles and activity streams will now be on by default. This, Gorges explained, is to provide a coherent experience that isn’t overwhelming and delivers what most users will most benefit from right off the bat. BuddyPress Project Lead John James Jacoby (or JJJ for short) has often shared the sentiment that using all of BuddyPress is a step in the wrong direction. In many cases only a slice of what’s available in the plugin is worth putting to use.

It turns out that many users would enable every BuddyPress component when faced with this step in the installation process.

It turns out that many users would enable every BuddyPress component when faced with this step in the installation process.

Last year Gorges, JJJ, and Paul Gibbs joined me on the Roundtable Podcast to discuss topics such as BuddyPress complexity in a bit more detail.

Of course despite BuddyPress setting defaults for users, all the important options are still present and changeable. It’s just that you will only have to deal with them if you go looking for them first.

Above: BuddyPress Lead Developer Boone Gorges previews the upcoming version 1.7 at a WordPress Meetup in New York City.

Meet BP_User_Query

The details behind the addition of the BP_User_Query to version 1.7 are more for developers than anyone, but the thing to know is this: with 1.7 many of the requests that include members (read: pretty much all of them) are much, much faster.

Regarding the improvements Gorges said, “When you load a members directory, and you have 100,00 users on your site, your page load time might go from five seconds down to half a second because of the optimizations that have happened here.” He continued, “It gets even better when you start doing complicated queries like search or a funky kind of sort. Those have even more dramatic speed increases.”

BP_User_Query introduced in 1.7

The BP_User_Query can be found in the bp-core-classes.php file.

Now, what about those details? Well one of the longstanding issues with BuddyPress has been that it’s sort of a resource hog. BuddyPress would execute joins on tables that, if you have more than few thousand users, could slow a site down real quick. That’s the exciting part about BP_User_Query. It gives developers a much quicker way to load up users within BuddyPress. It also allows for querying among multiple databases, which is a major factor in enterprise situations.

Gorges insists that these queries are backwards compatible with soon-to-be-old ways of querying, at least for “99.9% of sites.” There may be a few cases where a developer’s query might not work after the changeover. For those, however, there will be a way to force the use of legacy queries.

Group management akin to post and page screens

In order to make group management easier — particularly in situations where hundreds or even thousands of groups exist — BuddyPress 1.7 will also bring group administration within the WordPress dashboard. The management screens themselves are a lot like what you would expect from WordPress posts, pages, or custom post types. Exactly like them, actually.

These new screens will allow admins to take bulk actions on groups just the way you would to manage any other type of thing within WordPress. Modifying group settings on a singular basis can happen from the dashboard as well.

Not all big and flashy

Along with the major updates and changes will be a handful of smaller changes that should really appeal to those who have used BuddyPress for a while. Complete bbPress integration was completed with bbPress 2.3 (which is currently in beta) so that now, when installing BuddyPress forums, in reality the bbPress plugin is installed. It’s also now an option within BuddyPress core to limit certain blogs from being recorded within activity logs, for those cases where an administrative or housekeeping blog is kept that isn’t for public consumption.

BuddyPress 1.7 will also include an “admin only” visibility level for profile fields. Gorges, during his presentation embedded above, gave the example that an admin might want to include a profile field like phone number, referer, or where the user heard about the site — all of which isn’t exactly information the world needs to see. Soon those fields’ contents can be restricted to administrators only.

Sounds great. So when can we have it?

As for exactly when this next major version will launch, there is no specific date. The plan, according to the BuddyPress team, is to get a beta out in the next week or two, with the final release following a few rounds of betas. Obviously any number of timeline-affecting issues can come up during that time.

If you are running a BuddyPress site of any sort, it probably wouldn’t hurt to start testing the 1.7 development version that you can find on the BuddyPress trac. After all, the more people who run it through the ringer the fewer issues will end up in the final release.

10 thoughts on “BuddyPress 1.7: Theme independence, BP_User_Query, and what else to expect

  1. I’m so excited about 1.7. I did a site a few months back that needed buddypress and it was a pain in the butt to setup all the pages to work with the theme.

  2. Really excited about ‘all-the-themes’ and ‘member-query’ stuff. I however sort of like the current installation wizard, having direct control of what i want and how i want.. Can’t deny that those many check-boxes can be overwhelming for some non-techies, but then you just have to click next-next anyway.

    • I believe everything there will still be customizable, it just won’t be presented as a wizard upon installation. So you can still go through all the steps, you just don’t have to right away.

      • Yes! i checked buddypess 1.7 (beta release thing)after my previous comment, and yes the whole installtion wizards is still there, just not presented right away. Good move.

  3. Pingback: Theme independence among potential BuddyPress 1.7 features : Post Status

  4. wow!

    can’t wait to have the final release of BP 1.7…sounds really great, it was really fustrating to turn some awesome wp themes I’m using on BP.

    Can’t wait! can’t wait!

Comments are closed.