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

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's Widget Admin

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.


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

Install from the WordPress plugin repository or search for BuddyMenu BuddyLinks in Dashboard > Plugins > Add New.

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 bllink=”activity” bltext=”your activity page”]

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

[buddylink bllink=”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 bllink=”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.



  • 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.

Sharing is caring!

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

newest oldest most voted
Notify of
Ben Dixon

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

Same in Firefox.

Ben Dixon

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!

Ben Dixon

Also the ‘Forums’ link links to Activity. Easy fixable in the php I expect.


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!

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.


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).

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.


Great plugin! I hope you keep this one compatible! Thanks a lot!


Ok, I do have one question … why is there no option for “My Groups”? Everything else seems to be there.


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?

Is it possible to somehow add classes to the short code? I’m adding links via php echo in my templates and I’d like to use a custom class with it if possible.


Great and useful ;-) thank you to share it


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!


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

I am using in the widget with uber menu


how do I assign to every Dynamic links [buddylink]
the vertical alignment property?


Pardon the issue is when I add the shortcode into a subdomain.
for instance:

this is the shortcode:
[buddylink bllink=”/portfolio” bltext=”Portfolio”]

the link takes me on the profile page instead of the user portfolio of the main site


It works jsut fine, apologies
[buddylink bllink=”/portfolio” bltext=”Portfolio”]

Now, I’d like to add at the custom menu a custom link to lead to the right user page.
This link doesn’t work:

what I have to use instead of USERNAME?


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,


For some reason when I chose show avatar there is nothing showing. Any suggestionsa?

Ya I got it fixed thanks, any idea how to make the avatar smaller, its a lot larger than the other avatars on my site.


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.


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.

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”]


Thanks, that worked!

Thanks , great work, works fine

Adam Campbell

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!

How can you link to the profile page using a custom image? I am trying to build a dashboard page and I can’t figure out how to do this.

I ended up solving this issue by installing a plugin that allows PHP to execute from a WP page.


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… Read more »

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.

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.


Hey Lee,

I am sorry to bother you as I am sure you are a busy man but is there any chance of that notifications update?




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


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.



Thanks Lee for getting back to me, I really appreciate you doing this.



Great, i’m testing this in a new community. Looks great and exactly what buddypress needs


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

Laura Lee

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… Read more »

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,

How do I get custom url’s to open in a new window (target=”_blank”)
Thank you in advance


Hello! Thanks for the Nice Plugin.
How can I use the Dynamic Custom link?
I need to create a custom link to fetch a dynamic page. The Dynamic field is the [user_name]
Something like http://domain.com/subscriber/%5Buser_name%5D

TIA for your time and help.
Look forward to your reply.


In the documents above, regarding BuddyLinks links short code, you have a code example: “[buddylink bmlink=”activity” bltext=”your activity page”]”. In that example, you have used “bmlink” instead of “bllink” … Please, for the love of god, please correct this before more innocent lives are lost to the mass suicides of developers trying to make that code example work with the wrong option/attribute. I’ve just climbed back into the window myself. Thank you.


OMG thank you!! I was SO confused until I stumbled across this comment! Can’t believe it’s still wrong after 3 years lol


Hello. On my website is only showing the avatar when I am logged in as administrator. Other users will only show the menu items, Pore, the avatar does not appear. Why?

Bonjour, je souhaite faire afficher une notification avec le nombre de messages non lus à côté de messages,. Comment faire ? Merci !

Bonjour, Super pluging par contre il y a un problème quand vous écrivez:

“Pour afficher le menu avec le texte de l’onglet message a changé de boîte de réception * *:
[buddymenu bmmsg =”Boîte de réception”]”

Ben en faisant comme vous dites j’ai seulement “Boite” qui s’affiche et non “Boite de réception”

Avez vous une idée?? Merci