Menu Image

Description

Adds a field to load the image in a menu item and displays the image inside the link in the menu before the text.
Now you can upload the second image and set to the mouse over/out effect.
And also change position of title or hide title if need.
And… load images via media uploader!
Now WPML compliant!

Screenshots

  • Admin screen
  • Menu preview in standard twenty-thirteen theme

Installation

  1. Upload menu-image to the /wp-content/plugins/ directory
  2. Activate the plugin through the ‘Plugins’ menu in WordPress
  3. Go to /wp-admin/nav-menus.php
  4. Edit exist menu item or add new menu item and just upload image than click Save Menu
  5. See your menu on site
  6. (WMPL users only) Goto WPML > WP Menus Sync and click to Sync

FAQ

Installation Instructions
  1. Upload menu-image to the /wp-content/plugins/ directory
  2. Activate the plugin through the ‘Plugins’ menu in WordPress
  3. Go to /wp-admin/nav-menus.php
  4. Edit exist menu item or add new menu item and just upload image than click Save Menu
  5. See your menu on site
  6. (WMPL users only) Goto WPML > WP Menus Sync and click to Sync
How to add custom attributes to menu item link (useful for integration with dropdown menus)

Use core nav_menu_link_attributes and nav_menu_item_title filters.

How to wrap menu link text in `span` html element

Menu link text is already wrapped in span.menu-image-title.

How to add another size for the image?

To add a new size (or remove an old one) add a function to the menu_image_default_sizes filter. For example

<?php
add_filter( 'menu_image_default_sizes', function($sizes) {

  // remove the default 36x36 size
  unset($sizes['menu-36x36']);

  // add a new size
  $sizes['menu-50x50'] = array(50,50);

  // return $sizes (required)
  return $sizes;

});
?>
How to make hovered image visible on current page of menu item?

Add this link to style.css

.menu-item.current-menu-item > a.menu-image-hovered img.hovered-image {
  opacity: 1;
}
If you have problem with srcset image problem on WordPress version >= 4.4 and Azure hosting

If you srcset property look like this:

Then you can disable srcset (add it to your function.php):

/**
 * Fix for broken images on azure & wordpress 4.4
 * @see https://wordpress.org/support/topic/wordpress-adding-absolute-paths
 */
add_filter( 'wp_calculate_image_srcset', '__return_false' );

Reviews

Not working anymore

This plugin does´t work anymore. The last working version is v 2.7.0. I really don´t know what the heck the developer is doing, the last versions are total rubbish and also contain lots of irrelevant work in progress files. There is no good reason to use the WordPress plugin repository as coding playground, and there is no good reason to release trash as an update. This also kills the developers repuptation. Beside that: This was and could be a very usefull addon!

doesn’t work with twenty seventeen theme

i’d love it if this worked but it i uploaded a variety of versions of a simple icon to test and half the time it worked and half the time the icon was displayed at the height of the full screen. when i could get an image to work and tried to hover they weren’t displayed on top of each other. changing from 24 to 36 to 48 size never made any difference.

Read all 70 reviews

Contributors & Developers

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

Contributors

“Menu Image” has been translated into 6 locales. Thank you to the translators for their contributions.

Translate “Menu Image” into your language.

Interested in development?

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

Changelog

2.9.1

  • Fix previous broken update. Sorry for that, everyone is mistake.
  • Remove images srcset and sizes attributes.
  • Add autotests on for images view.

2.9.0

  • Update admin part copy regarding to new wp version.
  • Fix support url.
  • Fix php warning.

2.8.0

  • Use core nav_menu_link_attributes, nav_menu_item_title filters to add image and class instead of walker_nav_menu_start_el filter.
  • Drop support of core version < 4.4.0.

2.7.0

  • Remove notification plugin. It was not a good idea btw.

2.6.9

  • Revert back php <=5.2 support, https://wordpress.org/support/topic/upgrade-to-wp-453-and-268-and-got-this-error. Reported by @itmnetcom and @cjg79

2.6.8

  • Fix wp_nav_menu_item_custom_fields filter usage https://wordpress.org/support/topic/blocked-on-36×36-image. Reported by @vladimir-slonska
  • Fix php warning in notifier component https://wordpress.org/support/topic/invalid-argument-supplied-for-foreach-in-4. Reported by @susanmarshallva

2.6.7

  • Add menu_image_link_attributes filter, fix bug with menu dropdown in Flatsome theme https://wordpress.org/support/topic/bug-image-menu-dropdown. Reported by @apardo

2.6.6

  • Fix various php errors.

2.6.5

  • Add notification plugin.

2.6.4

  • Fixing a clearing bug for WordPress 4.5+. Thanx @kau-boy

2.6.3

  • Fix php warning ‘Invalid Argument foreach()’ https://wordpress.org/support/topic/invalid-argument-foreach-in-menu-imagephp-line-126. Thanx @majancart

2.6.2

  • Update FAQ to dial with srcset and Azure hosting https://wordpress.org/support/topic/wordpress-adding-absolute-paths. Thanx @GeertvanHorrik

2.6.1

  • Fix php warning https://wordpress.org/support/topic/bug-fix-error-in-the-file-menu-imagephp

2.6

  • Fix bug on attachment page.
  • Add french translation. Thanx @CreativeJuiz

2.5

  • Add above and below title. Thanx @alhoseany
  • Add original image size. Thanx @alhoseany
  • Fix the loss of choices on size and title when updating image by ajax. Thanx @alhoseany
  • Fix hidden title on responsive select menu.

2.4

  • Fix compatibility with some modules and themes to according to this topic
  • Fix Jetpack Phonon frontend bug

2.3

2.2

  • Added grunt-wp-readme-to-markdown npm package for converting readme to markdown for github users.

2.1

2.0

  • Added support of media uploader.
  • Fixed php strict warnings.
  • Added .ico image support, thanks to ivol84

1.3

  • Added ability to set title position, an example: before, after image or hide

1.2

  • Fix styles for hovered image

1.1

  • Added style file with vertical align of menu image item by default
  • Added ability to upload image that which will be replaced on hover
  • Added default image sizes for menu items: 24×24, 36×36 and 48×48