Nav Menu Images


Plugin homepage | Plugin author | Donate

This plugin enables you to upload images for nav menu items on a menu edit screen. By default, those images will be displayed instead of text for respective menu items. Note that after upload, you should set an image as ‘featured’ to be able to display it.

You can also set images that will be displayed only when you hover menu item, or when menu item is of currently displayed page. Read detailed instructions about using plugin.

Developers can use many available filters to make their own way of displaying images, or even create a child class on top of base one. See source code for more ideas.

Although this plugin displays uploaded images out of the box, it will probably not give best possible look, so it’s recommended to create custom CSS styles for affected elements.

Nav Menu Images code is partly based on a code from now defunct plugin Custom Menu Images by Anabelle Handdoek
/∞manos s.a.s and a code from plugin Metronet Profile Picture by Ronald Huereca/Metronet Norge AS.


  • Link to upload form on nav menu item's edit screen
  • Setting featured image from media modal screen
  • Uploaded image on nav menu item's edit screen
  • Setting image used on hover from media modal screen


Either install the plugin via the WordPress admin panel, or …

  1. Upload nav-menu-images folder to the /wp-content/plugins/ directory
  2. Activate the plugin through the ‘Plugins’ menu in WordPress

There are no configuration options in this plugin.


False sense of security?

This is “half” the equation for the purpsoe.

If you hide a menu item with this plugin, this does not mean that search engines can’t see it. Be SURE and also password protect any pages you want to protect.

As stated, you will need additional an additional plugin to control access to conbtent.

This plugin ONLY hides the menu item, but again, not from search engines.


Didn’t work

I tried this on a multisite install but it didn’t work – the option to upload an image just didn’t appear at all

Does what it promise

Does what it’s supposed to.
Would love the possibility to choose wether or not to replace all link content – would be nice if the link text would still be shown + adding a custom class to image.

Read all 37 reviews

Contributors & Developers

“Nav Menu Images” is open source software. The following people have contributed to this plugin.


“Nav Menu Images” has been translated into 1 locale. Thank you to the translators for their contributions.

Translate “Nav Menu Images” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



  • Released on 11th September 2016
  • Removed ‘srcset’ and ‘sizes’ attributes.
  • Fixed PHP notice that could happen in some cases.


  • Released on 15th April 2016
  • Fixed PHP notice in Nav_Menu_Images_Admin::attachment_fields_to_save()
  • Wrap image in AJAX response in <div> tag
  • Change translations text domain
  • Removed languages folder


  • Released on 14 January 2014
  • Fixed PHP notice in NMI_Walker_Nav_Menu_Edit::start_el()
  • Don’t pass class object by reference
  • Maybe fixed issues with “Missing argument 3 for Nav_Menu_Images::register_menu_item_filter()” errors
  • Add ‘has-image’ class to the menu item that has image


  • Released on 12th August 2013
  • Don’t cache media frame and instead load new each time
  • Don’t overwrite but extend it, and only with post data
  • Force listing of images uploading only to current post


  • Released on 26th March 2013
  • Add support for active and hover menu item images


  • Released on 11th February 2013
  • Use new media views for WordPress 3.5+
  • Add more hooks for developers


  • Released on 22nd October 2012
  • Initial release