Hi DanielYuHong ,
Portal uses this line in xhtml to render our menu:
<pm:menu id="main-menu" widgetVar="main-menu" model="#{menuView.mainMenuModel}" />
In MenuView, this method will call loadSubMenuItems process of PortalTemplate project and build the mainMenuModel.
ch.addon.portal.generic.menu.MenuView.buildPortalLeftMenu(ITask, boolean)
If you want to customize this menu, please follow below documentation:
https://developer.axonivy.com/documentation/portal-guide/9.2.2/portal-developer-guide/customization/menu.html