WP_nav_menu function

wp_nav_menu( array $args = array() )

Displays a navigation menu.


Parameters #Parameters

$args

(array) (Optional) Array of nav menu arguments.

  • ‘menu’
    (int|string|WP_Term) Desired menu. Accepts a menu ID, slug, name, or object.
  • ‘menu_class’
    (string) CSS class to use for the ul element which forms the menu. Default ‘menu’.
  • ‘menu_id’
    (string) The ID that is applied to the ul element which forms the menu. Default is the menu slug, incremented.
  • ‘container’
    (string) Whether to wrap the ul, and what to wrap it with. Default ‘div’.
  • ‘container_class’
    (string) Class that is applied to the container. Default ‘menu-{menu slug}-container’.
  • ‘container_id’
    (string) The ID that is applied to the container.
  • ‘container_aria_label’
    (string) The aria-label attribute that is applied to the container when it’s a nav element.
  • ‘fallback_cb’
    (callable|bool) If the menu doesn’t exist, a callback function will fire. Default is ‘wp_page_menu’. Set to false for no fallback.
  • ‘before’
    (string) Text before the link markup.
  • ‘after’
    (string) Text after the link markup.
  • ‘link_before’
    (string) Text before the link text.
  • ‘link_after’
    (string) Text after the link text.
  • ‘echo’
    (bool) Whether to echo the menu or return it. Default true.
  • ‘depth’
    (int) How many levels of the hierarchy are to be included. 0 means all. Default 0. Default 0.
  • ‘walker’
    (object) Instance of a custom walker class.
  • ‘theme_location’
    (string) Theme location to be used. Must be registered with register_nav_menu() in order to be selectable by the user.
  • ‘items_wrap’
    (string) How the list items should be wrapped. Uses printf() format with numbered placeholders. Default is a ul with an id and class.
  • ‘item_spacing’
    (string) Whether to preserve whitespace within the menu’s HTML. Accepts ‘preserve’ or ‘discard’. Default ‘preserve’.

Default value: array()


Top ↑

Return #Return

(void|string|false) Void if ‘echo’ argument is true, menu output if ‘echo’ is false. False if there are no items or no menu was found.


Top ↑

More Information #More Information

Usage #Usage

1wp_nav_menu( $args );

Given a theme_location parameter, the function displays the menu assigned to that location. If no such location exists or no menu is assigned to it, the parameter fallback_cb will determine what is displayed.

If not given a theme_location parameter, the function displays

  • the menu matching the ID, slug, or name given by the menu parameter;
  • otherwise, the first non-empty menu;
  • otherwise (or if the menu given by menu is empty), output of the function given by the fallback_cb parameter (wp_page_menu(), by default);
  • otherwise nothing.

Top ↑

The following classes are applied to menu items, i.e. to the HTML <li> tags, generated by wp_nav_menu():

All Menu Items #All Menu Items

  • .menu-item
    This class is added to every menu item.
  • .menu-item-has-children
    This class is added to menu item which has sub-items .
  • .menu-item-object-{object}
    This class is added to every menu item, where {object} is either a post type or a taxonomy.
  • .menu-item-object-category
    This class is added to menu items that correspond to a category.
  • .menu-item-object-tag
    This class is added to menu items that correspond to a tag.
  • .menu-item-object-page
    This class is added to menu items that correspond to static pages.
  • .menu-item-object-{custom}
    This class is added to menu items that correspond to a custom post type or a custom taxonomy.
  • .menu-item-type-{type}
    This class is added to every menu item, where {type} is either “post_type” or “taxonomy”.
  • .menu-item-type-post_type
    This class is added to menu items that correspond to post types: i.e. static pages or custom post types.
  • .menu-item-type-taxonomy
    This class is added to menu items that correspond to taxonomies: i.e. categories, tags, or custom taxonomies.

Top ↑

Current-Page Menu Items #Current-Page Menu Items

  • .current-menu-item
    This class is added to menu items that correspond to the currently rendered page.

Top ↑

Current-Page Parent Menu Items #Current-Page Parent Menu Items

  • .current-menu-parent
    This class is added to menu items that correspond to the hierarchical parent of the currently rendered page.
  • .current-{object}-parent
    This class is added to menu items that correspond to the hierachical parent of the currently rendered object, where {object} corresponds to the the value used for .menu-item-object-{object}.
  • .current-{type}-parent
    This class is added to menu items that correspond to the hierachical parent of the currently rendered type, where {type} corresponds to the the value used for .menu-item-type-{type}.

Top ↑

Current-Page Ancestor Menu Items #Current-Page Ancestor Menu Items

  • .current-menu-ancestor
    This class is added to menu items that correspond to a hierarchical ancestor of the currently rendered page.
  • .current-{object}-ancestor
    This class is added to menu items that correspond to a hierachical ancestor of the currently rendered object, where {object} corresponds to the the value used for .menu-item-object-{object}.
  • .current-{type}-ancestor
    This class is added to menu items that correspond to a hierachical ancestor of the currently rendered type, where {type} corresponds to the the value used for .menu-item-type-{type}.

Top ↑

Site Front Page Menu Items #Site Front Page Menu Items

  • .menu-item-home
    This class is added to menu items that correspond to the site front page.

Top ↑

Backward Compatibility with wp_page_menu() #Backward Compatibility withwp_page_menu()

The following classes are added to maintain backward compatibility with the [[Function Reference/wp_page_menu|wp_page_menu()]] function output:

  • .page_item
    This class is added to menu items that correspond to a static page.
  • .page_item_has_children
    This class is added to menu items that have sub pages to it.
  • .page-item-$ID
    This class is added to menu items that correspond to a static page, where $ID is the static page ID.
  • .current_page_item
    This class is added to menu items that correspond to the currently rendered static page.
  • .current_page_parent
    This class is added to menu items that correspond to the hierarchical parent of the currently rendered static page.
  • .current_page_ancestor
    This class is added to menu items that correspond to a hierarchical ancestor of the currently rendered static page.
Share :
Tag :