如何通过编程方式设置SharePoint团队网站导航的方向与可见性
刚好我之前做过类似的需求,给你整理了两种方法的具体实现步骤,都是经过验证的:
方法一:通过现代站点模板(Site Template)预设导航配置
如果你需要批量创建Team Site时统一设置导航,用站点模板是最高效的方式。核心是在模板的JSON配置中加入导航设置动作:
- 编写站点设计脚本的JSON配置,其中包含
setSiteNavigation动作:
{ "$schema": "https://developer.microsoft.com/json-schemas/sp/v2/site-design-script-actions.schema.json", "actions": [ // 这里可以加其他动作,比如应用主题、创建列表等 { "verb": "setSiteNavigation", "navigationLayout": "Horizontal", // 可选值:Horizontal(顶部导航)/ Vertical(左侧导航) "navigationVisibility": "Visible", // 可选值:Visible(显示)/ Hidden(隐藏) "megaMenuEnabled": false // 是否启用超级菜单,按需设置 } ], "bindata": {}, "version": 1 }
- 部署这个站点设计:
- 可以用PnP PowerShell执行命令:
# 连接到SharePoint admin站点 Connect-PnPOnline -Url https://yourtenant-admin.sharepoint.com -Interactive # 添加站点设计 $script = Get-Content -Path "your-script.json" -Raw Add-PnPSiteDesign -Title "Custom Team Site with Nav Settings" -WebTemplate "64" -SiteScripts $script -Description "Team Site with pre-configured navigation" - 之后创建站点时选择这个模板,导航就会自动按配置生效。
- 可以用PnP PowerShell执行命令:
方法二:通过Power Automate调用REST API修改现有站点导航
如果是对已存在的Team Site调整导航,用Power Automate调用REST API非常灵活:
- 创建一个手动触发的Power Automate流,添加「发送HTTP请求到SharePoint」动作。
- 配置请求参数:
- 站点地址:目标Team Site的完整URL(比如
https://yourtenant.sharepoint.com/sites/yourteamsite) - 方法:POST
- URI:
/_api/web/SetSiteNavigation - Headers:
Accept:application/json;odata=nometadataContent-Type:application/json;odata=nometadata
- Body:
{ "navigationLayout": "Vertical", "navigationVisibility": "Visible", "megaMenuEnabled": true }
- 站点地址:目标Team Site的完整URL(比如
- 保存并测试流:运行后目标站点的导航就会立即更新。
注意事项
- 两种方法都需要站点所有者或更高权限的账号执行操作。
- 如果要隐藏左侧导航,将
navigationLayout设为Horizontal同时把左侧导航的独立设置关闭,或者额外调用/_api/web/navigation/CurrentNavigation/SetIsEnabled并传入false。
内容的提问来源于stack exchange,提问作者Chris Eaheart
相关产品推荐
相关产品推荐

