While moving a client over to WordPress, we wanted to take a hard-coded menu with icons and descriptions into a WordPress-controlled menu that allowed the administrator to update the menu with ease from the Wordpress control panel.

Unfortunately, this functionality is not completely offered by WordPress. While updating the Screen Options in the WordPress control panel will allow you to add the Description to your menu’s advanced properties, WordPress does not give you a way render the descriptions with your link. To solve this, I created a plugin.

To achieve this, I first had to implement a Walker_Nav_Menu object that would render each menu item how we want it. I was able to get most of this from a blog post I found online.

I then implemented a custom WP_Widget object. It contains the widget form for the WordPress control panel as well as the rendering process for the public view. The rendering processes used the Walker_Nav_Menu object to display the menu with descriptions.

You can download the source code from the Descriptive Menu Plugin page in the WordPress Plugins Directory. You can also check out our release post.

For other WordPress help please visit our WordPress Web Development Page and see what we can do for you!

Kerry Ritter's avatar

Kerry has been creating Websites since he was twelve-years old and is our newest team-member in Web Development. He loves PHP but can code in just about any language.