KeyName
Returns the
identifier
property of the given menu entry, falling back to its name
property.Syntax
MENUENTRY.KeyName
Returns
string
In this menu definition, the second entry does not contain an identifier
, so the Identifier
method returns its name
property instead:
menus:
main:
- identifier: about
name: About
pageRef: /about
weight: 10
- name: Contact
pageRef: /contact
weight: 20
[menus]
[[menus.main]]
identifier = 'about'
name = 'About'
pageRef = '/about'
weight = 10
[[menus.main]]
name = 'Contact'
pageRef = '/contact'
weight = 20
{
"menus": {
"main": [
{
"identifier": "about",
"name": "About",
"pageRef": "/about",
"weight": 10
},
{
"name": "Contact",
"pageRef": "/contact",
"weight": 20
}
]
}
}
This example uses the KeyName
method when querying the translation table on a multilingual site, falling back the name
property if a matching key in the translation table does not exist:
<ul>
{{ range .Site.Menus.main }}
<li><a href="{{ .URL }}">{{ or (T (.KeyName | lower)) .Name }}</a></li>
{{ end }}
</ul>
In the example above, we need to pass the value returned by .KeyName
through the lower
function because the keys in the translation table are lowercase.