PageRef
语法
MENUENTRY.PageRef
返回值
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
方法。