bp_get_the_body_class( array $wp_classes = array(), array|bool $custom_classes = false )
Customize the body class, according to the currently displayed BP content.
Description
Uses the above is_() functions to output a body class for each scenario.
Parameters
- $wp_classes
-
(Optional) The body classes coming from WP.
Default value: array()
- $custom_classes
-
(Optional) Classes that were passed to get_body_class().
Default value: false
Return
(array) $classes The BP-adjusted body classes.
Source
File: bp-core/bp-core-template.php
function bp_get_the_body_class( $wp_classes = array(), $custom_classes = false ) {
$bp_classes = array();
/* Pages *************************************************************/
if ( is_front_page() ) {
$bp_classes[] = 'home-page';
}
if ( bp_is_directory() ) {
$bp_classes[] = 'directory';
}
if ( bp_is_single_item() ) {
$bp_classes[] = 'single-item';
}
/* Components ********************************************************/
if ( ! bp_is_blog_page() ) {
if ( bp_is_user_profile() ) {
$bp_classes[] = 'xprofile';
}
if ( bp_is_activity_component() ) {
$bp_classes[] = 'activity';
}
if ( bp_is_blogs_component() ) {
$bp_classes[] = 'blogs';
}
if ( bp_is_messages_component() ) {
$bp_classes[] = 'messages';
}
if ( bp_is_friends_component() ) {
$bp_classes[] = 'friends';
}
if ( bp_is_groups_component() ) {
$bp_classes[] = 'groups';
}
if ( bp_is_settings_component() ) {
$bp_classes[] = 'settings';
}
if ( bp_is_invites_component() ) {
$bp_classes[] = 'invites';
}
}
/* User **************************************************************/
if ( bp_is_user() ) {
$bp_classes[] = 'bp-user';
// Add current user profile types.
if ( $member_types = bp_get_member_type( bp_displayed_user_id(), false ) ) {
foreach( $member_types as $member_type ) {
$bp_classes[] = sprintf( 'member-type-%s', esc_attr( $member_type ) );
}
}
}
if ( ! bp_is_directory() ) {
if ( bp_is_user_blogs() ) {
$bp_classes[] = 'my-blogs';
}
if ( bp_is_user_groups() ) {
$bp_classes[] = 'my-groups';
}
if ( bp_is_user_activity() ) {
$bp_classes[] = 'my-activity';
}
} else {
if ( bp_get_current_member_type() || ( bp_is_groups_directory() && bp_get_current_group_directory_type() ) ) {
$bp_classes[] = 'type';
}
}
if ( bp_is_my_profile() ) {
$bp_classes[] = 'my-account';
}
if ( bp_is_user_profile() ) {
$bp_classes[] = 'my-profile';
}
if ( bp_is_user_friends() ) {
$bp_classes[] = 'my-friends';
}
if ( bp_is_user_messages() ) {
$bp_classes[] = 'my-messages';
}
if ( bp_is_user_recent_commments() ) {
$bp_classes[] = 'recent-comments';
}
if ( bp_is_user_recent_posts() ) {
$bp_classes[] = 'recent-posts';
}
if ( bp_is_user_change_avatar() ) {
$bp_classes[] = 'change-avatar';
}
if ( bp_is_user_profile_edit() ) {
$bp_classes[] = 'profile-edit';
}
if ( bp_is_user_friends_activity() ) {
$bp_classes[] = 'friends-activity';
}
if ( bp_is_user_groups_activity() ) {
$bp_classes[] = 'groups-activity';
}
/* Messages **********************************************************/
if ( bp_is_messages_inbox() ) {
$bp_classes[] = 'inbox';
}
if ( bp_is_messages_compose_screen() ) {
$bp_classes[] = 'compose';
}
if ( bp_is_notices() ) {
$bp_classes[] = 'notices';
}
if ( bp_is_user_friend_requests() ) {
$bp_classes[] = 'friend-requests';
}
if ( bp_is_create_blog() ) {
$bp_classes[] = 'create-blog';
}
/* Groups ************************************************************/
if ( bp_is_group() ) {
$bp_classes[] = 'group-' . groups_get_current_group()->slug;
// Add current group types.
if ( $group_types = bp_groups_get_group_type( bp_get_current_group_id(), false ) ) {
foreach ( $group_types as $group_type ) {
$bp_classes[] = sprintf( 'group-type-%s', esc_attr( $group_type ) );
}
}
}
if ( bp_is_group_leave() ) {
$bp_classes[] = 'leave-group';
}
if ( bp_is_group_invites() ) {
$bp_classes[] = 'group-invites';
}
if ( bp_is_group_members() ) {
$bp_classes[] = 'group-members';
}
if ( bp_is_group_admin_page() ) {
$bp_classes[] = 'group-admin';
$bp_classes[] = bp_get_group_current_admin_tab();
}
if ( bp_is_group_create() ) {
$bp_classes[] = 'group-create';
$bp_classes[] = bp_get_groups_current_create_step();
}
if ( bp_is_group_home() ) {
$bp_classes[] = 'group-home';
}
if ( bp_is_single_activity() ) {
$bp_classes[] = 'activity-permalink';
}
/* Registration ******************************************************/
if ( bp_is_register_page() ) {
$bp_classes[] = 'registration';
}
if ( bp_is_activation_page() ) {
$bp_classes[] = 'activation';
}
/* Current Component & Action ****************************************/
if ( ! bp_is_blog_page() ) {
$bp_classes[] = bp_current_component();
$bp_classes[] = str_replace(',', ' ', bp_current_action());
}
/* Clean up ***********************************************************/
// Add BuddyPress class if we are within a BuddyPress page.
if ( ! bp_is_blog_page() ) {
$bp_classes[] = 'buddypress';
}
// Add the theme name/id to the body classes
$bp_classes[] = 'bp-' . bp_get_theme_compat_id();
// Merge WP classes with BuddyPress classes and remove any duplicates.
$classes = array_unique( array_merge( (array) $bp_classes, (array) $wp_classes ) );
/**
* Filters the BuddyPress classes to be added to body_class()
*
* @since BuddyPress 1.1.0
*
* @param array $classes Array of body classes to add.
* @param array $bp_classes Array of BuddyPress-based classes.
* @param array $wp_classes Array of WordPress-based classes.
* @param array $custom_classes Array of classes that were passed to get_body_class().
*/
return apply_filters( 'bp_get_the_body_class', $classes, $bp_classes, $wp_classes, $custom_classes );
}
Changelog
| Version | Description |
|---|---|
| BuddyPress 1.1.0 | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.