Hi, we always create a child theme derived from the BuddyPress default theme (we are on our 5th commercial BP project at the moment).
We customise heavily, change an awful lot of the CSS, and tear our hair out at the masses of unnecessary divs and classes. But, on the other hand it does give us a huge head start – BuddyPress needs a lot of template files and loops that aren’t in standard WordPress themes.
If you are happy with the default structures and functionality, you can get a long way quickly with this approach. Styling the layouts to your needs.
If you want to add new functionality, seriously enhance the loops, and so on – you are in for a bigger challenge – it’s not as easy as WordPress theming, you quickly end up in hooks, filters and plugins (which you can usually avoid in standard WP theming), and a fairly restricted API (which is due to get better, and better documented). The joys of building on the sands of a still relatively early stage project.
Good luck – I’m sure you’ll create a great site.
Roger
p.s. setting up a child theme is straightforward – a few lines in your style.css. We typically mimic the folder structure of the default theme, copy over just the files we are specialising (most of them!), and work from there. Only strange thing is functions.php – a functions.php in your child theme doesn’t override the one in the parent theme, both are used.
p.p.s. I can’t comment on the theme pack plugin… I haven’t used it
Don’t use template pack. That’s a quick fix to get WP users without theming skills using BP. For the long run you are better using a child theme as a start. Upgrades are easy this way too.
I disagree. Using the BP Template Pack and building as a child theme of BP-Default have their respective advantages and disadvantages.
An advantage of using the Template Pack which I feel you’re overlooking is that it allows theme designers to quickly get the required template/css/js files into their custom theme. This is a lot quicker for a non-BP-expert than figuring out which files are required. The designer then has two options; add, possibly duplicate, your CSS to style the BuddyPress templates to match the rest of the site, or use the Template Pack files as a skeleton, which the designer can then use to rebuild those templates to their own HTML/CSS specifications (perhaps to use a theme framework).
I only start with a child theme off the default BP theme, *if* the markup of the non bp-areas (blog pages, etc) is close to what I want in the end.
Thanks everyone, I was going to say after the first two post that I was going to jump into Child Theming something I’ve wanted to do for a while. The second two post sound more like using the theme pack and making a standard theme may be a better option. Ah, I’m back where I started! I think I’m leaning towards child theme for two reasons 1) it’s something I’ve wanted to learn and 2) It has all the BP ajax, CSS, etc.
Thanks for your input thus far and I encourage you to keep it coming.
The only issues you should have with a WP theme is all the BuddyPress CSS, easy enough to fix but can require lots of edits depending on the theme.
To include the required BuddyPress JS & ajax functions in any WP theme, all you need to do is add something like the following to your themes functions.php file
require_once( BP_PLUGIN_DIR . '/bp-themes/bp-default/_inc/ajax.php' );
function theme_loaded_init() {
wp_enqueue_script( 'bp-js', BP_PLUGIN_URL . '/bp-themes/bp-default/_inc/global.js', array( 'jquery' ) );
}
add_action('wp_head', 'theme_loaded_init', 5);
You would also need to add the BuddyPress template folders to your theme & add either the default buddypress & admin bar css to your css with edits or include the defaults in the above theme_loaded_init function.
also note, some themes that include custom JS can conflict with BuddyPress JS, if the theme is coded properly it should be easy to remove those conflicts on BuddyPress pages.