When BuddyPress 1.7 was released in April 2013, the most anticipated new feature was WordPress theme compatibility. This marked a turning point in BuddyPress history and meant that sites no longer required a BuddyPress-specific theme. Prior to 1.7, use of the plugin depended on having a BP-enabled theme. Developers had to do quite a bit of work to theme markup and CSS in order to ensure BuddyPress compatibility.
The BuddyPress 1.7 about page included a “Declaration of (Theme) Independence,” stating that BuddyPress was now compatible with all WordPress themes:
These changes brought BuddyPress more in line with how WordPress loads templates. It works much the same way as bbPress – where you can simply drop the plugin into your site and it takes on the look of your active theme. As a result of theme compatibility, it seemed that it was no longer important for theme authors to specify if their themes were compatible with BuddyPress. After all, aren’t all themes now compatible?
Not All WordPress Themes Use WordPress’s Template Loader
The reality is that not all WordPress themes follow the WordPress core template loading approach, as outlined by Boone in response to a recent ticket on the subject.
BuddyPress lead developer John James Jacoby commented on a related thread, indicating that BuddyPress cannot guarantee support for theme frameworks that bypasses WordPress’ template loader with its own:
Previous to 1.9 we were purposely doing it wrong for the sake of maximum compatibility. In 1.9, we fixed up a few things, that now uncover pretty fatal flaws in several themes. I’m torn, but I think it’s up to theme authors to decide their level of plugin compatibility, rather than the other way around where theme authors would expect every plugin to adapt to their proprietary output system.
Updates made in BuddyPress 1.9 have changed bp_buffer_template_part() calls to return instead of echo contents, which exposed some issues with themes as users started upgrading from 1.8 – 1.9. Reverting that back for the sake of theme compatibility wasn’t a good option.
Fortunately, BuddyPress developer @r-a-y submitted a potential fix which was then committed to the trunk this morning. This patch may be helpful for sites that need an immediate fix. Hopefully, we’ll see these changes in a minor release soon.
Stating Compatibility With Major Plugins
Small fixes like the one referenced above may not resolve all theme incompatibilities, as there are some super complex WordPress themes that utilize their own non-standard templating systems. Since commercial themes do not post their code publicly, there’s no way for the consumer to know what kind of templating engine is under the hood.
Therefore, it would be helpful if theme authors could specifically state their theme’s compatibility with BuddyPress. Ensuring that your theme is BuddyPress compatible is far easier than it once was if you’re using WordPress’ standard template loading. In many cases the theme is already compatible and it’s just a matter of testing to confirm. It also wouldn’t hurt to test with other major plugins that have extensive user bases, such as bbPress, WooCommerce, Easy Digital Downloads, etc.
The bottom line is that plugins simply cannot support all WordPress themes, no matter how popular a theme or framework has become. The BuddyPress core team is doing everything they can to help maintain compatibility while continuing to move BuddyPress forward, but they will not be able to account for all themes.
Since theme authors cannot be forced to state their compatibility with major WordPress plugins, the responsibility ulimately falls to the consumer. If you’re considering purchasing a WordPress theme with the intention of using it with BuddyPress or bbPress or another plugin, make sure to ask the theme author if it will be compatible before buying. This could save you quite a bit of hassle and frustration.