pageRef
Syntax
MENUENTRY.PageRef
Returns
string
这种方法的用例很少见。
在几乎所有其他场景中,你应该改用 URL
方法。
说明
如果在站点配置中 定义菜单项 时指定了 pageRef
属性,Hugo 会在渲染该项时查找匹配的页面。
如果找到匹配的页面:
URL
方法返回页面的相对永久链接Page
方法返回相应的Page
对象Page
对象上的HasMenuCurrent
和IsMenuCurrent
方法返回预期值
如果没有找到匹配的页面:
URL
方法返回条目已设置的url
属性,否则返回空字符串Page
方法返回 nilPage
对象上的HasMenuCurrent
和IsMenuCurrent
方法返回false
示例
这个例子是人为编造的。
考虑以下内容结构:
content/
├── products.md
└── _index.md
以及这个菜单定义:
hugo.
menus:
main:
- name: Products
pageRef: /products
weight: 10
- name: Services
pageRef: /services
weight: 20
[menus]
[[menus.main]]
name = 'Products'
pageRef = '/products'
weight = 10
[[menus.main]]
name = 'Services'
pageRef = '/services'
weight = 20
{
"menus": {
"main": [
{
"name": "Products",
"pageRef": "/products",
"weight": 10
},
{
"name": "Services",
"pageRef": "/services",
"weight": 20
}
]
}
}
使用此模板代码:
Hugo 渲染此 HTML:
<ul>
<li><a href="/products/">Products</a></li>
<li><a href="">Services</a></li>
</ul>
请注意以上第二个 anchor
元素的 href
属性为空,因为 Hugo 无法找到 “services” 页面。
使用此模板代码:
Hugo 渲染此 HTML:
<ul>
<li><a href="/products/">Products</a></li>
<li><a href="/services">Services</a></li>
</ul>
请注意以上 Hugo 使用站点配置中定义的 pageRef
属性填充第二个 anchor
元素的 href
属性,因为模板代码回退到 PageRef
方法。