我是concrete5的新手,需要循环出父级的子页面(父级不一定是当前页面,因此可能需要父级slug作为参数传递)。
我希望这很简单,但我在上面找到的所有内容都与自动导航有关。由于站点导航采用非标准格式,我无法使用自动导航。
该解决方案不一定需要打印任何标记 - 只需生成一个 PHP 数组和标题就可以了,然后我可以循环进入一些标记。但我会采取任何一种方式:-) 在此先感谢!
我是concrete5的新手,需要循环出父级的子页面(父级不一定是当前页面,因此可能需要父级slug作为参数传递)。
我希望这很简单,但我在上面找到的所有内容都与自动导航有关。由于站点导航采用非标准格式,我无法使用自动导航。
该解决方案不一定需要打印任何标记 - 只需生成一个 PHP 数组和标题就可以了,然后我可以循环进入一些标记。但我会采取任何一种方式:-) 在此先感谢!
如果您想要一些标记,并且希望它显示在某种页面上,请查看页面列表块: http: //www.concrete5.org/documentation/editors-guide/in-page-editing/block-areas/添加块/页面列表/
如果您以编程方式需要页面,那么有一个PageList
模型可以将父页面传递给并将所有子页面作为Page
对象数组获取。https://github.com/concrete5/concrete5/blob/master/web/concrete/core/models/page_list.php
我刚开始使用具体的 5,我可以说这不是最佳代码。但它有效,也许它会对你有所帮助,因为其他文章对我没有太大帮助。
也就是说,如果您有要为其获取子页面的页面的 ID,则可以执行以下操作:
$page = Page::getByID("page_id_here");
$sub_page_ids = $page->getCollectionChildrenArray(1);
foreach ($sub_page_ids as $id) {
$page = Page::getByID($id);
$pages_array[$page->getCollectionName()] = DIR_REL . $page->getCollectionPath();
}
这将输出一个看起来像这样的数组
$pages_array["page-url-here"] = "Title of Page Here"
显然,根据您的需要,您需要修改代码,但这是我最终在我的网站上使用的。如果有人对如何一次抓取所有子页面而不是一个一个地抓取所有子页面有建议,我认为那会好得多。