在安企CMS中,利用 pageList 标签展示所有单页面的标题和链接,是网站布局和导航设置中非常常见且实用的需求。无论是用于网站底部导航、侧边栏链接列表,还是构建一个简单的HTML站点地图,pageList 标签都能帮助我们高效地实现这些功能。
理解安企CMS中的单页面
首先,我们来简要回顾一下安企CMS中的“单页面”。在安企CMS的后台管理中,有一个专门的“页面资源”模块,其中包含了“页面管理”功能。这里就是创建和管理“关于我们”、“联系我们”、“隐私政策”等独立页面的地方。这些页面通常内容相对固定,不属于文章或产品等模型,它们各自拥有独立的标题、内容、链接,甚至可以配置缩略图和SEO信息。
pageList 标签的核心作用
安企CMS提供了一个非常便捷的模板标签——pageList,专门用于获取网站中所有单页面的信息。它的设计理念就是让我们能够轻松地遍历这些独立的页面,并取出我们所需的数据,例如页面的标题和链接。
使用 pageList 标签的基本结构非常直观,它需要一个开始标签 {% pageList %} 和一个结束标签 {% endpageList %}。在这两个标签之间,我们可以使用 for 循环来逐一处理每个单页面。
基本用法:显示所有单页面的标题和链接
要显示网站所有单页面的标题和链接,我们需要将 pageList 标签与 for 循环结合起来。pageList pages 声明了一个名为 pages 的变量,它会包含所有单页面的集合。在 for 循环中,item 则代表了集合中的每一个单页面对象。
每个 item 对象都包含了一系列页面相关属性,其中最常用也最符合我们需求的就是 item.Title(页面标题)和 item.Link(页面链接)。
下面是一个简单的模板代码示例,它将把所有单页面以无序列表(<ul>)的形式展示出来,每个列表项包含页面的标题和指向该页面的链接:
<ul class="page-links">
{% pageList pages %}
{% for item in pages %}
<li>
<a href="{{ item.Link }}">{{ item.Title }}</a>
</li>
{% endfor %}
{% endpageList %}
</ul>
这段代码会遍历安企CMS后台“页面管理”中创建的所有单页面,并为每个页面生成一个列表项 <li>,其中包含一个超链接 <a>,链接的文本就是页面的标题,链接的目标地址就是页面的实际URL。
深入理解 pageList 标签的参数与字段
pageList 标签在大多数情况下不需要额外的参数就能获取所有单页面。但对于多站点用户,可以通过 siteId 参数来指定获取特定站点的单页面列表。例如:{% pageList pages with siteId="1" %}。
除了 item.Title 和 item.Link 之外,每个单页面 item 对象还提供了其他有用的字段,可以根据需要进行展示:
item.Id: 单页面的唯一标识ID,常用于调试或结合条件判断。item.Description: 单页面的简要描述,可以在链接下方作为补充信息。item.Content: 单页面的完整内容(通常不直接在列表页显示,除非有特殊需求)。item.Logo: 单页面的主要图片或大图URL。item.Thumb: 单页面的缩略图URL,如果页面配置了缩略图的话。
如果你希望在列表中显示这些额外信息,可以直接在 for 循环中使用 {{ item.Description }}、{{ item.Thumb }} 等来调用。例如:
<ul class="page-cards">
{% pageList pages %}
{% for item in pages %}
<li>
<a href="{{ item.Link }}">
{% if item.Thumb %}<img src="{{ item.Thumb }}" alt="{{ item.Title }}"/>{% endif %}
<h3>{{ item.Title }}</h3>
</a>
{% if item.Description %}<p>{{ item.Description }}</p>{% endif %}
</li>
{% endfor %}
{% endpageList %}
</ul>
更灵活的展示方式:排除特定页面
在某些情况下,你可能不希望网站的所有单页面都显示在某个列表中。例如,你创建了一个“隐私政策”页面,但只想在页脚显示链接,而不希望它出现在主导航栏中。此时,可以在 for 循环内部添加条件判断来过滤特定页面。
我们可以利用 item.Id(页面的唯一ID)或 item.Title(页面标题)来进行过滤。使用ID通常更为精确和稳健,因为标题可能会改变。
<ul class="main-navigation">
{% pageList pages %}
{% for item in pages %}
{# 假设ID为5的页面是“隐私政策”,我们不希望它出现在这个导航中 #}
{% if item.Id != 5 %}
<li>
<a href="{{ item.Link }}">{{ item.Title }}</a>
</li>
{% endif %}
{% endfor %}
{% endpageList %}
</ul>
通过这样的条件判断,你可以根据实际需求,灵活地控制哪些单页面应该在当前位置显示。
应用场景示例
pageList 标签的灵活性使其适用于多种网站结构和布局:
- 网站底部导航: 快速列出如“关于我们”、“联系方式”、“服务条款”等页面的链接。
- 侧边栏菜单: 作为辅助导航,列出与当前内容相关的单页面。
- 站内搜索结果的补充: 在搜索结果中除了文章/产品外,也希望能展示相关单页面。
- HTML站点地图: 生成一个简洁的列表,帮助用户和搜索引擎快速了解网站结构。
注意事项
在使用 pageList 标签时,有几个小细节值得注意,以确保模板代码的正确性和网站的正常运行:
- 标签大小写敏感: 安企CMS的模板标签是大小写敏感的。请确保
pageList、pages、item.Title、item.Link等都严格按照文档中的驼峰命名法书写。 - 模板文件位置:
pageList标签通常在/template目录下的.html模板文件中使用。 - 数据来源:
pageList获取的是后台“页面管理”中已发布且可见的单页面。如果某个页面未发布或设置了不显示,它将不会出现在pageList的结果中。
总结
综上所述,安企CMS的 pageList 标签提供了一种直观高效的方式来管理和