In BuddyPress, when a user clicks on their username, they are presented with a page that contains a menu:


How do I add an item to this menu?

How do display this menu inside my template? (The default page template only displays the main navigation.)


Here's an example of adding a menu items pointing to custom templates. If you want to link to existing BP elements, you'll need to look up the appropriate action. Add this to functions.php:

// Set up Cutsom BP navigation
function my_setup_nav() {
      global $bp;

      bp_core_new_nav_item( array( 
            'name' => __( 'Item One', 'buddypress' ), 
            'slug' => 'my-item-one', 
            'position' => 30,
            'screen_function' => 'my_item_one_template', 
      ) );

      bp_core_new_nav_item( array(
            'name' => __( 'Item Two', 'buddypress' ),
            'slug' => 'my-item-two',
            'position' => 20,
            'screen_function' => 'my_item_two_template' 
      ) );

      // Change the order of menu items
      $bp->bp_nav['messages']['position'] = 100;

      // Remove a menu item
      $bp->bp_nav['activity'] = false;

      // Change name of menu item
      $bp->bp_nav['groups']['name'] = ‘community’;

add_action( 'bp_setup_nav', 'my_setup_nav' );

// Load a page template for your custom item. You'll need to have an item-one-template.php and item-two-template.php in your theme root.
function my_item_one_template() {
      bp_core_load_template( 'item-one-template' );

function my_item_two_template() {
      bp_core_load_template( 'item-two-template' );

Hope that helps! More at this article on Themekraft.

| improve this answer | |
  • I've tried your code and the new element is displayed correctly in the menu with the appropriate link. However, when I navigate to the page, it displays the members lists. It doesn't matter what I name the slug and the corresponding template file, it always seems to display the members list. – bowlerae Jun 18 '15 at 17:57

Check out the BuddyPress Custom Profile Menu plugin.

You should be able to add tabs just by creating a regular Wordpress menu.

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.