Title: Navigation Menu IDs &amp; Classes
Author: Aaron T. Grogg
Published: <strong>September 30, 2011</strong>
Last modified: May 15, 2015

---

Search plugins

This plugin **hasn’t been tested with the latest 3 major releases of WordPress**.
It may no longer be maintained or supported and may have compatibility issues when
used with more recent versions of WordPress.

![](https://s.w.org/plugins/geopattern-icon/navigation-menu-ids-classes.svg)

# Navigation Menu IDs & Classes

 By [Aaron T. Grogg](https://profiles.wordpress.org/aarontgrogg/)

[Download](https://downloads.wordpress.org/plugin/navigation-menu-ids-classes.2.6.zip)

 * [Details](https://wordpress.org/plugins/navigation-menu-ids-classes/#description)
 * [Reviews](https://wordpress.org/plugins/navigation-menu-ids-classes/#reviews)
 *  [Installation](https://wordpress.org/plugins/navigation-menu-ids-classes/#installation)
 * [Development](https://wordpress.org/plugins/navigation-menu-ids-classes/#developers)

 [Support](https://wordpress.org/support/plugin/navigation-menu-ids-classes/)

## Description

This plug-in limits the classes WordPress added to navigation menus to only those
desired by the Theme owner,
 adds a unique ID to each `li` and removes any empty`
class` attributes.

More about this plug-in can be found at:
 http://aarontgrogg.com/2011/09/28/wordpress-
plug-in-navigation-menu-ids-classes/

Please let me know if you have any questions/suggestions/thoughts,

Atg

## Installation

 1. Download the ZIP
 2. Unzip the ZIP
 3. Copy/paste the unzipped files into your WP plug-in directory (`/wp-content/plugins/`)
 4. From within WP’s Plugin Admin panel, Activate the ‘Navigation Menu IDs & Classes’
    plug-in
 5. Choose which, if any, WP classes you wish to have in your HTML
 6. Marvel at the power of technology!

## FAQ

  Why bother?

 * WP bakes in a ton of extraneous, border-line-useless, IDs and classes on navigation
   menu LIs (are you really going to
    target `id="menu-item-72"` or `class="page-
   item-58"` in your CSS?). This plug-in greatly reduces those classes, and adds
   classes that reflect the link’s page name, in slug form, so you can easily target
   menu LIs in your CSS.

  What WP classes are allowed to remain?

 * Any that you choose.

  Does this work with standard and custom menus?

 * Yes, both standard and custom menus will get class names that reflect the page
   name from the link they contain, such as:
 * [About Us](https://wordpress.org/plugins/navigation-menu-ids-classes/about-us?output_format=md)

## Reviews

![](https://secure.gravatar.com/avatar/e52219e35dd38ce9b5cd5c5ba65b218e576f04673884f8f56995d5fe6b3d3d82?
s=60&d=retro&r=g)

### 󠀁[1 for inclusion in core](https://wordpress.org/support/topic/1-for-inclusion-in-core/)󠁿

 [nimmolo](https://profiles.wordpress.org/nimmolo/) September 3, 2016 1 reply

At least some aspect of this plugin seems like it should be available in WordPress
core. I understand the rationale for menu items having menu-item-ID, but it’s pretty
practical for them to have the slug in there, as this plugin provides. Suggestion
for plugin feature – offer option for slug prefix. Like if I have a menu item “updates”
I may use the class “updates” elsewhere, but class “menu-item-updates” would target
the menu-item for sure. Of course I can currently use double selectors.

 [ Read all 5 reviews ](https://wordpress.org/support/plugin/navigation-menu-ids-classes/reviews/)

## Contributors & Developers

“Navigation Menu IDs & Classes” is open source software. The following people have
contributed to this plugin.

Contributors

 *   [ Aaron T. Grogg ](https://profiles.wordpress.org/aarontgrogg/)

[Translate “Navigation Menu IDs & Classes” into your language.](https://translate.wordpress.org/projects/wp-plugins/navigation-menu-ids-classes)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/navigation-menu-ids-classes/),
check out the [SVN repository](https://plugins.svn.wordpress.org/navigation-menu-ids-classes/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/navigation-menu-ids-classes/)
by [RSS](https://plugins.trac.wordpress.org/log/navigation-menu-ids-classes/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 2.5

2015-03-13:
 * Fixing issue if no cusotm classes exist

#### 2.4

2013-07-11:
 * Added ability to retain custom class added via the Menus Admin page;
thanks to Bryce for the idea, and sorry it took me so long to get around to!

#### 2.3

2013-04-07:
 * Fixed naming issue preventing plug-in from working and fixed screenshots

#### 2.1

2013-01-11:
 * Fixed an issue where individual checkboxes seemed to not respond 
to click (in fact, thanks to WP’s layout and jQuery’s bubbling, my toggle function
was toggling twice). Was able to fix issue and remove the toggle function altogether.
Thanks, Erin Allen! * Fixed an issue where the `for` attribute for all of the `label`
s was not getting added correctly. Now the `label` for each row spans the entire
row, meaning you can click anywhere in a row to toggle that checkbox. * Changed `
NMIC.checkboxes.attr` to `NMIC.checkboxes.prop` in the `checkall` and `uncheckall`
functions.

#### 2.0

2012-10-03:
 * Finally added the admin screen! * Added `if ( ! function_exists( '...')):`
blocks around each plug-in function * Changed function namesspace from `nmic` to`
NMIC` * Still want to find a way to gather possible WP class names programmatically,
for “this” version of WP; any ideas?

#### 1.2

2012-02-27:
 * Page name slug classes were not working; this has been fixed. Thanks
to Christopher Bright for getting me to look into this. * Removed nmic_remove_empty_classes
function, as it is no longer necessary now that all nav menu LIs will have at least
one class: the page name slug.

#### 1.0

2011-09-28:
 Well, this is the first version, so… here it is, hope you like it!

## Meta

 *  Version **2.5**
 *  Last updated **11 years ago**
 *  Active installations **100+**
 *  WordPress version ** 3.0 or higher **
 *  Tested up to **4.1.42**
 * Tags
 * [class](https://wordpress.org/plugins/tags/class/)[id](https://wordpress.org/plugins/tags/id/)
   [menu](https://wordpress.org/plugins/tags/menu/)[navigation](https://wordpress.org/plugins/tags/navigation/)
   [semantic](https://wordpress.org/plugins/tags/semantic/)
 *  [Advanced View](https://wordpress.org/plugins/navigation-menu-ids-classes/advanced/)

## Ratings

 4.8 out of 5 stars.

 *  [  4 5-star reviews     ](https://wordpress.org/support/plugin/navigation-menu-ids-classes/reviews/?filter=5)
 *  [  1 4-star review     ](https://wordpress.org/support/plugin/navigation-menu-ids-classes/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/navigation-menu-ids-classes/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/navigation-menu-ids-classes/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/navigation-menu-ids-classes/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/navigation-menu-ids-classes/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/navigation-menu-ids-classes/reviews/)

## Contributors

 *   [ Aaron T. Grogg ](https://profiles.wordpress.org/aarontgrogg/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/navigation-menu-ids-classes/)