Liferay 7.4主题模板中如何获取菜单与面包屑的instance_id
在Liferay 7.4主题模板中调用自定义菜单的正确方法
你之前尝试的几种写法都不符合Liferay模板标签的规范,下面直接说明如何获取正确标识及调用方式:
一、获取菜单的有效标识(instance_id或siteNavigationMenuId)
方法1:从后台管理界面获取
- 进入目标站点的「站点设置」→「导航」→「菜单」
- 找到需要调用的自定义菜单,点击菜单名称进入编辑页
- 获取两种可用标识:
- siteNavigationMenuId:浏览器地址栏的URL里会包含
siteNavigationMenuId=XXXX,其中的数字就是菜单ID - UUID:在编辑页展开「高级选项」,可以看到菜单的UUID值,这个就是
instance_id参数需要的内容
- siteNavigationMenuId:浏览器地址栏的URL里会包含
方法2:通过数据库查询(若有权限)
直接查询SiteNavigationMenu表,siteNavigationMenuId字段是菜单ID,uuid_字段就是UUID。
二、正确的模板调用写法
1. 使用UUID(对应instance_id参数)
<@liferay.navigation_menu instance_id="你的菜单UUID" />
2. 使用菜单ID(直接用siteNavigationMenuId参数)
<@liferay.navigation_menu siteNavigationMenuId=12345 />
注:这里的数字不需要加引号,因为是数值类型参数。
3. 调用站点主菜单(无需指定标识)
如果是要调用站点默认的主菜单,直接用type参数更方便:
<@liferay.navigation_menu type="main" />
三、面包屑的对应写法
面包屑标签<@liferay.breadcrumb />同样支持指定菜单,用法和导航菜单一致:
<!-- 使用菜单ID --> <@liferay.breadcrumb siteNavigationMenuId=12345 /> <!-- 使用UUID --> <@liferay.breadcrumb instance_id="你的菜单UUID" />
内容的提问来源于stack exchange,提问作者Alvaro Osorio
相关产品推荐
相关产品推荐

