BuddyPress Dynamic Links in Pages, Posts and Widgets with BuddyMenu Plugin

BuddyMenu's Widget Admin BuddyMenu BuddyLinks does three things really well: BuddyPress menu widgets, BuddyPress menu shortcodes and BuddyPress dynamic link shortcodes.

Easily put BuddyPress menus and dynamic user links in sidebars, posts, pages, widget areas and anywhere else a widget or shortcode can go.

This WordPress plugin needs BuddyPress to work. There is no need to network activate it in WP Multisite. BuddyMenu displays to logged in visitors only.

Why BuddyMenu BuddyLinks

BuddyPress menus are dynamic. Their URLs change for each logged in user. This makes it difficult for most community admins and webmasters to add links to areas in their BuddyPress sites.

For example, unless you know how, you can’t create a welcome page and send new users to their profile page with a link in the welcome page because the link will be different for each user.

A link to a user’s own activity stream looks like http://example.com/members/[USERNAME]/activity/.

The [USERNAME] bit of the URL is added dynamically by BuddyPress. Without the BuddyLinks plugin, you’ll need to use pictures, videos, diagrams and lots of text to send people to different locations within your BP site. Being able to add the BuddyPress menu to your sidebar and other widget areas and being able to add BuddyPress links in page text will greatly enhance user experience.

BuddyMenu Widget

The BuddyMenu Widget displays the main BP menus items:

  1. Activity
  2. Forums
  3. Groups
  4. Friends
  5. Messages
  6. Profile
  7. Edit Profile
  8. Change Avatar
  9. Settings

Button order is customizable and you can set custom links.

Main Features

  • Choose which BuddyPress profile links display.
  • Specify anchor text for each link.
  • Choose to display the menu as a vertical list.
  • Choose to show the menu as a horizontal bar.
  • Customize the links shown.
  • Add you own custom slugs and menu tabs.
  • Configure the display order of the links.
  • Each link has a customizable icon.
  • Set custom icons.
  • Displays to logged in users only. Logged out users do not see the menu.
  • As easy to use as going to Appearance > Widgets and dragging the BuddyMenu widget into a sidebar or any other widget area.

BuddyMenu Shortcode

BuddyMenu Shortcode displays the same 9 menu tabs as the BuddyMenu Widget but as a shortcode.

BuddyMenu can be put in any page or post. If you use Ultimate TinyMCE you can even put the shortcode in widgets.

The BuddyMenu Shortcode Features

  • Configurable menu titles, just like the widget.
  • Vertical and horizontal alignment.
  • Menu items can be switched off.
  • Icons and icon customizations
  • All the features of the widget but in a shortcode.

BuddyLinks Shortcode

BuddyLinks is for use within page and post content. Ideal for linking to user’s profiles, settings, personal activity streams and any other BuddyPress page from within a post.

For example, add a link to a new user’s ‘edit avatar’ page to your site’s welcome guide. Use the BuddyLinks shortcode to embed dynamic links within in page text.

BuddyLinks Features

  • In context BuddyPress linking.
  • Ease of use.
  • Link title and link anchor configuration.
  • Quick links to each of the 9 pages found in BuddyMenus.
  • Configurable text for logged out visitors – tell them to login to follow the link or make the text non-clickable.
  • Option to display icons or not. The default action is to not display icons.


Use the WordPress Add New Plugins menu otherwise…

  1. Download the zip file from WordPress.org.
  2. Upload the BuddyMenu file to /wp-content/plugins/
  3. Extract the zip file.

Activate the plugin through the WordPress plugins page.

Go to Appearance > Widgets to place the BuddyMenu Widget in a sidebar.

Grab it from the WordPres repository by clicking the link below.

[slider_pro id="2"]


These instructions are also in the plugin’s readme.txt file.

BuddyMenu Widget

  • Go to Appearance > Settings
  • Find the BuddyMenu widget
  • Drag the widget into a widget area
  • Configure the menus to display, their titles and whether to display horizontally or vertically.

This menu is only visible to logged in users.

BuddyMenu Shortcode

BuddyMenu Shortcode displays a vertical or horizontal menu. You can change the anchor text of each menu tab. The link title tooltip will always be the same as the anchor text. Any of the menu tabs can be disabled. This menu is not visible to visitors who are not logged in.

Enter the shortcode in any page, post or widget area (if you are set up to use shortcodes in widget areas).

The shortcode for the menu is:


The options/attributes are:

  • bmact=”” to change the activity tab
  • bmfor=”” to change the forum tab
  • bmfri=”” to change the friends tab
  • bmmsg=”” to change the messages tab
  • bmpro=”” to change the profile tab
  • bmedpro=”” to change the edit profile tab
  • bmchav=”” to change the change avatar tab
  • bmset=”” to change the settings tab
  • bmlay=”” to change the layout from horizontal to vertical

If no option is set, the full menu is displayed as a horizontal row.

Setting any option to -1 will disable that option’s menu item.

Any text entered within the quotes of an option will become the link anchor text and the link title for that option’s menu item.

For example,

To show the full menu horizontally:


To show the full menu as a vertical list:

[buddymenu bmlay="vertical"]

To show the menu without the activity tab:

[buddymenu bmact="-1"]

To show the menu with the message tab text changed to *Inbox*:

[buddymenu bmmsg="Inbox"]

To show a horizontal menu with the settings tab changed to *Configs*:

[buddymenu bmset="Configs" bmlay="horizontal"]

This menu is very useful in horizontal widget areas in multilingual environments.

The icon attributes do not need to be used but if you wish to use them they are:

  • bmacti=”” sets the activity icon.
  • bmfori=”” sets the forum icon.
  • bmfrii=”” sets the friends icon.
  • bmmsgi=”” sets the messages icon.
  • bmproi=”” sets the profile icon.
  • bmedproi=”” sets the edit profile icon.
  • bmchavi=”” sets the change avatar icon.
  • bmseti=”” sets the settings icon.
  • bmicons=”0″ Disables all icons.

Put the URL to any image into a link icon attribute to use that image as the icon for that link.

For example,

Disables all icons:

[buddymenu bmicons="0"]

Replace the default activity icon with the image at http://example.com/icon.png:

[buddymenu bmacti="http://example.com/icon.png"]


The BuddyLinks shortcode provides a stub URL that is dynamically generated by BuddyPress. This URL looks like http://example.com/members/[USERNAME]/. You need to use the bllink=”” option to set the path that follows the username.

This shortcode is good for linking to pages within your network from within the text of your pages and posts.

None logged in users see the text “login to view this link” which links to the WordPress login page. This text link is configurable.

BuddyMenu has four main options/attributes:

  1. bllink=”” sets the link
  2. bltitle=”” sets the tooltip title
  3. bltext=”” sets the anchor text that users click
  4. blicon=”” sets the icon link

If you provide no attributes, the shortcode returns a link to a user’s profile page with the anchor text “your profile” and no tool-tip title.

blicon=”” can be used to display a custom icon or an icon from the plugin’s default icon set. Accepted values are activity, friends, messages, profile, edit-profile, avatar and settings or any image URL. No icon will show if this attribute is not used.

For example,

To link to a logged in user’s activity page:

[buddylink bmlink="activity" bltext="your activity page"]

To link to a logged in user’s message inbox:

[buddylink bmlink="messages/inbox" bltext="view your inbox"]

To link to a logged in user’s message inbox with an icon accompanying the link:

[buddylink bllink="messages/inbox" bltext="view your inbox" blicon="messages"]

There are three options for controlling what non logged in users see:

  1. blolink=”” for setting the link
  2. blotitle=”” for setting the title
  3. blotext=”” for setting the anchor text

By default, a non logged in user will see a link to your site’s login/registration page. To change that destination you could do something like this:

[buddylink bmlink="messages/inbox" bltext="view your inbox" blolink="http://example.com/reasons-to-register" blotext="reasons to register"]


BuddyLinks has quicklinks built into it to facilitate quick placement of links to common BuddyPress areas.

Used with the [buddylink] shortcode, the options are:

  • blq=”act” to link to ‘activity’
  • blq=”for” to link to ‘forums’
  • blq=”fri” to link to ‘friends’
  • blq=”msg” to link to ‘messages’
  • blq=”pro” to link to ‘profile’
  • blq=”edpro” to link to ‘edit profile’
  • blq=”chav” to link to ‘change avatar’
  • blq=”set” to link to ‘settings’

For example,

To link to a user’s activity page:

[buddylink blq="act"]

To link to a user’s activity page and print a custom message to non logged in users:

[buddylink blq="act" blotext="You can't go here because you're not logged in!"]

QuickLinks do not accept custom title and link attributes except for those intended for non logged in users.


Q: I’m getting a space between the BuddyLink and my punctuation marks, why is this?

A: This is a known bug with BuddyLinks. I am working on a fix.


General support

Leave a message in the comments below.

Commercial support

Commercial support and extensive feature requests are catered for by my web development company at




  • Typo fix in the readme file.


  • Major upgrade – Almost complete rewrite
  • Widget – Selectable link order
  • Widget – Customize link icons
  • Widget – Custom links
  • Widget – Icon disablement feature
  • Shortcodes – Icon inclusion
  • Shortcodes – Custom icons
  • Widget settings – New, neater look
  • Removed hardcoding of icon URL location in CSS
  • New icons


  • First public release.


  1. Ben Dixon says

    Fantastic, just what I’ve been looking for. You have a new fan and a new customer. Any reason why the images aren’t showing in the widget? The files are uploaded in the correct img directory on the server but they don’t seem to be showing. I’m using Chrome.

    • Ben Dixon says

      Hi Lee this is also FlipFlop from WP forum just so you aren’t pursuing me in two places. Can you drop me an email benjamesdixon [at] gmail [d0t] com please and I’ll send you my site along with some login details so you can see the menu. I’ve updated just now and Forums is indeed fixed but still no icons in both Chrome and Firefox. Cheers mate!

  2. says


    I’m really excited to use this plugin, I’ve tried downloading both from the wordpress site and uploading directly. However, I keep getting a “The package could not be installed. No valid plugins were found.” attribute any ideas how to fix that problem? Thanks!

    • says

      Okay, got it working. Had to install in the Cpanel to work. Once the zip file was uploaded to the cPanel I had to:

      Extract the Zip file

      Open extracted folder and move the BuddyMenu-BuddyLinks from the extracted folder to the root plugins folder.


    • says

      Hi Tyson. Thank you for mentioning this. I’m not sure why it happened like this for you. Did you download the plugin from here at JournalXtra or from wordpress.org ?

    • says

      I tried both. Directly from wordpress.org I got the error. Trying to use the “upload zip” in the plugins installer, I got the same error. The cpanel worked, but only after moving the extracted files around (not difficult).

    • says

      That’s odd. The plugin executable file is under the directory /BuddyMenu-BuddyLinks/. It installs there and runs from there. Will run a few tests. Have you had similar issues with other plugins or is there anything unique about your installation?

      I am sorry for my delayed responses. Had to rebuild a theme for a client’s BuddyPress site.

    • says

      Just noticed this after coming back here for some short codes. I haven’t had any other problems with any other plugins. However, on a second site I was working on a week later the install worked perfectly.

  3. Bill says

    Having a problem. My “Change Avatar” link is going to the wrong place. It is going to username/avatar/ instead of username/profile/change-avatar/

    Any suggestions?

  4. ben says

    on the widget menu, what is the difference between, Show to Visitors: ‘logged-in’ and ‘Logged In’

    also, why is the seventh menu item the only with the menu titled profile/edit?

    thanks in advance!

    • says

      The widget allows you to set visibility to different user roles i.e whether it displays only to people who are logged into the site, people who are not logged into the site or or both. The widget also lets you set visibility to each menu item individually.

      I’m not sure what you mean by the second question. Every menu item has the same set of options.

  5. onafete says

    I think there is a bug in “show avatar”
    the result is: avatar image “/>

    I am using in the widget with uber menu

  6. says


    How would you put the menu in the left side of your site to show on every page for only logged in users? I have tried to put the menu in the home-left side bar widget area, it just does not show. Would you have to create a dynamic left side bar? If so could you recommend on how to do so?

    Thank you,


    • says

      It’s possible CSS in use in the site is interfering with the avatar’s display. Can you give me a link to your website so I can check the CSS in use.

    • says

      Use CSS to limit the width.

      There is a BuddyPress function for defining the avatar size but CSS will probably suit you better.

  7. cici says

    i like this plugin, but i find i need more than 12 option slots. I wish there was a way to add more menu/link options besides 12. I also wish there was an easier way to re arrange the links. I find for example, that i set my links 1-10, but want to add a link at the #3 spot…..i have to go through and change all slots just to do it.

  8. onafets says

    I wonder if there is the way to get the link of the author post.
    In my case the portfolio author, as I have taxonomies

    Thank you in advance for any effort.

  9. says

    This plugin is awesome, so happy to have found it! I am using Shortcode to insert the change avatar link on a page, and although I have set blotext=”my text”, the default “change avatar” still prints. How do I get the text to set per my shortcode? Here’s the shortcode in full:

    [buddylink blq="chav" blotext="Upload or Change your User Avatar"]


  10. Adam Campbell says

    I would love to be able to create a profile menu for “my posts” that would link to an author’s blog posts. Is there any way to do that with BuddyMenu? (I have investigated TCH Posts on Profile – which I can’t make work, and BuddyDev’s BuddyBlog, as well as Social Articles – neither of which is quite what I’m looking for.)
    Thanks in advance!

    • says

      Hi Adam, do you need a way to link to blog author posts or any author’s posts such as comments within BuddyPress etc..? To link to a blog author’s posts you can create a custom menu item that links to an author’s (post) archive page. It could be done dynamically if needed.

    • says

      Hi Chris. I haven’t added the option to use a custom image for the profile link in the menu widget. You should be able to use the shortcode for this. I am a little pushed for time today but will provide an example here in a few days.

  11. says

    Firstly thanks for the great widget, is what just what I was looking for. I have two questions.
    1. Firstly is it possible to get alert notifications with the menu. In the original BP menu I get a number icon next to each tag telling me how many messages I have or how much media I have, is this possible with this to have this function or maybe I have not set it up correctly.
    2. Secondly I have a line of code that I am using in the original BP menu that when I click a menu link the page refreshes to the same point. (see below)

    jQuery(document).ready(function() {
    jQuery(“#item-nav .item-list-tabs a”).each(function() {

    Is it possible to insert it in your plugin so I can use the same function?

    Many thanks,

    • says

      Hi Allan. Are you using BuddyPress 1.9? BP 1.9 has new notification widgets and the option to add BP pages into WordPress custom menus.

      When you visit Appearance > Menus in the WordPress dashboard, click “Screen Options” at top right of the screen. The BP menu items option needs to be enabled in screen options before you can add BP menu items to a custom menu.

      Look at the BP change log to see the new features of BuddyPress 1.9.

    • says

      I know I’ve posted this comment before, I would like to know if it’s possible to get a number notification on the buddymenu like you do on the default buddypress menu. I would really like to use only the buddymenu on my site as I think it has so much flexibility but I need it have the facility to show the notifications. If it doesn’t, is it possible to have this feature in an update.

      If you would like more details I’d be happy to get in touch and explain in more detail.

    • says

      Hell Allan, BuddyPress 1.9.1 integrates with the WordPress custom menu system. There is a “notifications” menu item. I don’t know whether it displays the number notification of notifications but it could be worth testing.

      You might not immediately see the BuddyPress custom menu items under Appearance > Menus. If they are not there, look at the top-right of the screen and you will see a “Screen Options” tab. Click that tab and configure which items you would like displayed.

      Let me know how you get on. If it doesn’t work I will look into adding the notifications bubble into the widget for you.

    • says

      If you could add the notification bubbles to the widget that would be amazing. It would mean that it is a completely stand alone plugin and that I would not have to use the buddypress menu.

      If you could agree to do that I would happily donate to your plugin.


  12. Dee says

    Hello, Great plugin by the way. I wanted to know if there’s a way to use my buddypress as my logout option instead of wordpress. When a person logs out I would like to show my buddypress site not the white plain wordpress site. Thanks in advance. -Dee

    • says

      Thank you Dee. What you are looking for is a logout redirection plugin such “Peter’s Login Redirects” from the WordPress repository (works for log outs too).

      Slightly different note: I recommend BuddyDev.com as a good resource for BuddyPress plugins. Have you looked at “Welcome Pack” in the WordPress plugin repo?

      Have a Merry Christmas, Dee.

  13. says


    Is there any chance I can get an answer to my request I posted on February 4th?

    “If you could add the notification bubbles to the widget that would be amazing. It would mean that it is a completely stand alone plugin and that I would not have to use the buddypress menu.”

    Thanks, it would make a big difference to my site and the functionality. If this could somehow be done I would be more than happy to donate to this great plugin.



    • says

      Allan, when get a round to it, adding the bubble will take me maybe 20 minutes to do, I’ve just not had the time do make the upgrade. Let me see whether I can get to it this weekend. I can’t promise anything. There’s no need to donate but I do appreciate the offer :)

  14. Ben says

    i use buddydrive an it works verry good, but i need to display the username or nick by the side of the avatar. Can you help me? Thx

  15. Laura Lee says

    Thank you so much, Lee. I just installed this and am trying to learn how to use it. (I am in process of original setup of a website.)

    I wanted to use this to list all of the menu items as quick links on a page. I have added the optional “Send Invites” to my site by, I guess, the “Invite Anyone” plug-in. So, it is a menu item that is not standard.

    I am wondering if there is a way for me to add that optional menu item “Send Invites” to the [buddymenu] shortcode so it appears on the same list on the page?

    **It is amazing that someone could “write code” and make this functional on my site where I can list that menu on a page. Amazing. :)

    Thank you, again, so much!

    • says

      Thanks Laura.

      Might require quite a bit of code to do as you ask. I don’t have time to support the plugin at the moment. Please feel free to edit or chop and change the plugin as needed. If I get time I will take a look but I’m not likely to have any spare time during the next few months.

  16. says

    Thank you. This is a great plugin! I’m trying to figure out how to use it to link to sitewide content such as forums and groups at the root level. I’m not very familiar with plugin development; so, I’m having a tough time figuring out how to edit it to have an option for a buddypress link that does not follow the username; but, rather, follows the root address, such as localhost.com/buddypress/forums.

    Any suggestions?

    Thank you again,

    • says

      You won’t be able to that with this plugin out-of-the-box – would require custom coding. Have you considered using a WordPress custom menu widget?

Leave a Reply