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.)
More posts from themightymo.com
How to Connect a GoDaddy Site to ManageWP
GoDaddy owns ManageWP, and, strangely, they make it very difficult to add GoDaddy-managed WordPress sites to their ManageWP service. Thankfully, there’s a quick workaround: Visit https://yoursite.com/wp-admin/plugins.php?showWorker=1 — This will make the ManageWP “Worker” plugin visible. Copy the connection info from the ManageWP Worker plugin. Add the site per-normal on ManageWP. That’s it! I hope this…
How to check if your current page is the wp-login.php page
I realized this morning that my TMM Maintenance Mode WordPress plugin had a bug that was causing the wp-login.php page to be inaccessible. The solution was to write a simple function that checks whether or not we’re currently on a login page, and then add a call to that function in my code. Here’s the…
WooCommerce Product Image Gallery Not Loading with WP Rocket Active
Today I updated a WooCommerce site, and everything worked fine, except for the images on product pages – they were not displaying at all. After a lot of trial & error, I realized that WP Rocket was to blame. I’m not sure exactly what the issue was (though my hunch is that it had to…