How to Add, Remove, and Change the Order Of BuddyPress Component Menu

By Posted in - Blog Post & BuddyPress on January 26th, 2012 3 Comments

Today I needed to change three things in a BuddyPress installation:

  1. Change the title of “Groups” to “My Conversations” in the BuddyPress component menu.
  2. Remove the “Forums” menu item from the BuddyPress component menu.
  3. Change the order of the BuddyPress component menu such that the “Messages” link is in a different place.

To accomplish these three things, I added the following to my theme’s functions.php file:

 
// Setup the navigation
// Props to http://wordpress.stackexchange.com/questions/16223/add-buddypress-profile-menu-item for helping me figure this out
// http://themekraft.com/customize-profile-and-group-menus-in-buddypress/
function my_setup_nav() {
      global $bp;
 
      // Change the order of menu items
      $bp->bp_nav['messages']['position'] = 100;
 
      // Remove a menu item
      $bp->bp_nav['conversations'] = false;
 
      // Change name of menu item
      $bp->bp_nav['communities']['name'] = 'My Conversations';
}
 
add_action( 'bp_setup_nav', 'my_setup_nav', 1000 );

Pretty nifty, eh?

By the way, if you want to see all of your options for editing the components menu, just throw the following into functions.php:

 
function bp_dump() {
    global $bp;
 
    foreach ( (array)$bp as $key => $value ) {
        echo '<div>';
        echo '<strong>' . $key . ': </strong><br />;';
        print_r( $value );
        echo '</div>';
    }
    die;
}

(Thanks ThemeKraft!)

How to Add, Remove, and Change the Order Of BuddyPress Component Menu was last modified: January 25th, 2012 by Toby Cryns

(3) awesome folk have had something to say...

  • Rick Roberts -

    February 7, 2012 at 10:22 pm

    Thank you so much for posting this solution. It worked almost perfectly. There is a partial tab left over on the left side, and I can’t figure out where that is coming from. Picture here: http://d.pr/vqh4

    • toby -

      February 16, 2012 at 3:40 am

      I don’t know… Let me know if you solve the problem, so I can post the solution here.

  • mecanographik -

    March 2, 2012 at 9:47 am

    Hey, i have a found a way to hide the partial tab with just a bit of css in your bp child theme stylesheet :

    div.item-list-tabs ul #-personal-li{display:none;}

    i’m sure there is a way to do it with a hook on the bp_get_displayed_user_nav function, but i couldn’t figure it out !