--- title: Menu Entry Properties linktitle: Menu Entry Properties description: A menu entry in a menu-template has specific variables and functions to make menu management easier. date: 2017-03-12 publishdate: 2017-03-12 lastmod: 2017-03-12 categories: [variables and params] keywords: [menus] draft: false menu: docs: title: "variables defined by a menu entry" parent: "variables" weight: 50 weight: 50 sections_weight: 50 aliases: [/variables/menu/] toc: false --- A **menu entry** has the following properties available that can be used in a [menu template][menu-template]. ## Menu Entry Variables .Menu : _string_
Name of the **menu** that contains this **menu entry**. .URL : _string_
URL that the menu entry points to. The `url` key, if set for the menu entry, sets this value. If that key is not set, and if the menu entry is set in a page front-matter, this value defaults to the page's `.RelPermalink`. .Page : _\*Page_
Reference to the [page object][page-object] associated with the menu entry. This will be non-nil if the menu entry is set via a page's front-matter and not via the site config. .PageRef {{< new-in "0.86.0" >}} : _string_
Can be set if defined in site config and the menu entry refers to a Page. [site.GetPage](/functions/getpage/) will be used to do the page lookup. If this is set, you don't need to set the `URL`. .Name : _string_
Name of the menu entry. The `name` key, if set for the menu entry, sets this value. If that key is not set, and if the menu entry is set in a page front-matter, this value defaults to the page's `.LinkTitle`. .Identifier : _string_
Value of the `identifier` key if set for the menu entry. This value must be unique for each menu entry. **It is necessary to set a unique identifier manually if two or more menu entries have the same `.Name`.** .Pre : _template.HTML_
Value of the `pre` key if set for the menu entry. This value typically contains a string representing HTML. .Post : _template.HTML_
Value of the `post` key if set for the menu entry. This value typically contains a string representing HTML. .Weight : _int_
Value of the `weight` key if set for the menu entry. By default the entries in a menu are sorted ascending by their `weight`. If that key is not set, and if the menu entry is set in a page front-matter, this value defaults to the page's `.Weight`. .Parent : _string_
Name (or Identifier if present) of this menu entry's parent **menu entry**. The `parent` key, if set for the menu entry, sets this value. If this key is set, this menu entry nests under that parent entry, else it nests directly under the `.Menu`. .Children : _Menu_
This value is auto-populated by Hugo. It is a collection of children menu entries, if any, under the current menu entry. ## Menu Entry Functions Menus also have the following functions available: .HasChildren : _boolean_
Returns `true` if `.Children` is non-nil. .KeyName : _string_
Returns the `.Identifier` if present, else returns the `.Name`. .IsEqual : _boolean_
Returns `true` if the two compared menu entries represent the same menu entry. .IsSameResource : _boolean_
Returns `true` if the two compared menu entries have the same `.URL`. .Title : _string_
Link title, meant to be used in the `title` attribute of a menu entry's ``-tags. Returns the menu entry's `title` key if set. Else, if the menu entry was created through a page's front-matter, it returns the page's `.LinkTitle`. Else, it just returns an empty string. ## Other Menu-related Functions Additionally, here are some relevant methods available to menus on a page: .IsMenuCurrent : _(menu string, menuEntry *MenuEntry ) boolean_
See [`.IsMenuCurrent` method](/functions/ismenucurrent/). .HasMenuCurrent : _(menu string, menuEntry *MenuEntry) boolean_
See [`.HasMenuCurrent` method](/functions/hasmenucurrent/). [menu-template]: /templates/menu-templates/ [page-object]: /variables/page/