Sometimes I need to style everything that BuddyPress creates differently than regular WordPress stuff. For example, I might need to style all groups, forums, profile pages, etc. a certain way and have different styling for blogs and WordPress multi-site home pages.
My solution is to tap into the body_class() function and add a special class called, “buddypress” to all BuddyPress pages. Just add the following to your theme’s functions.php file:
// Add "buddypress" to body_class function if we are on a BuddyPress-generated page add_filter('body_class','add_buddypress_body_classes'); function add_buddypress_body_classes($classes, $class) { if (!bp_is_blog_page()) : // add 'my-class' to the $classes array $classes[] = 'buddypress'; // return the $classes array return $classes; endif; } |
Or if you need to target specific BuddyPress components, you can do it this way:
// Add "buddypress" to body_class function if we are on a BuddyPress-generated page add_filter('body_class','add_buddypress_body_classes'); function add_buddypress_body_classes($classes, $class) { if ( bp_is_profile_component() || bp_is_activity_component() || bp_is_blogs_component() || bp_is_messages_component() || bp_is_friends_component() || bp_is_groups_component() || bp_is_settings_component() ) : // add 'my-class' to the $classes array $classes[] = 'buddypress'; // return the $classes array return $classes; endif; } |
Hooray!
(Thanks to this thread for making me aware of the bp_is_blog_page function.)