Piranha CMS:如何查找页面的子页面
Posted
技术标签:
【中文标题】Piranha CMS:如何查找页面的子页面【英文标题】:Piranha CMS: how to find child pages for a page 【发布时间】:2019-07-11 19:12:23 【问题描述】:如何找到子页面项,以从块中获取其标题和链接? (页面在管理器中的结构方式)
我对站点地图进行了一些尝试,但在实例化对象时遇到了一点问题。我该怎么做?
遍历站点地图中的所有节点以找到正确的页面会有点麻烦。有没有更好的办法?
【问题讨论】:
【参考方案1】:要获得您只需调用的站点地图结构:
var sitemap = api.Sites.GetSitemap();
如果您有多个站点,则需要指定所需站点,否则返回默认站点的站点地图。
var sitemap = api.Sites.GetSitemap(siteId);
获得站点地图后,您可以从当前页面获取部分站点地图,并使用以下代码对子页面做一些有趣的事情:
var sitemap = api.Sites.GetSitemap();
var partial = sitemap.GetPartial(myPage.Id);
foreach (var subpage in partial)
// Do your stuff here!
最好的问候
哈坎
【讨论】:
谢谢,这让我更接近目标,但没有接近终点线。在 Block 模型中,我无法找到 Page Id - 试图通过 Request 对象获取 url-path,找到 Slug,但这只是返回类似“/page/”的内容,而不是显示的 url在浏览器中。 您好!在从属性 Url 从 IApplicationService 重写之前,您可以获取当前 url。如果您从视图中访问它并从我们的模板之一创建了您的项目,则此服务将注入到 _ViewImports 中的变量 WebApp 中,在这种情况下,您可以使用 WebApp.Url 获取它以上是关于Piranha CMS:如何查找页面的子页面的主要内容,如果未能解决你的问题,请参考以下文章