如何获取网站的所有单页面列表?

作为一名资深安企CMS网站运营人员,我深知获取和管理网站内容的重要性,尤其是对于那些承载着核心信息,如“关于我们”、“联系方式”或“服务条款”等重要内容的单页面。在安企CMS中,系统提供了高效且灵活的方式来获取这些单页面的列表,以便我们将其集成到网站导航、站点地图或其他需要展示的地方。

理解安企CMS中的单页面

安企CMS的单页面功能旨在管理那些独立存在、不属于任何文章或产品分类的静态内容。这些页面通常具有固定的结构和特定的目的,例如企业介绍、隐私政策、免责声明等。在网站运营中,我们经常需要将这些单页面链接到网站的页头、页脚或侧边栏,以确保用户能够轻松找到并访问这些重要信息。了解如何程序化地获取这些页面的列表,是实现这些需求的基础。

使用 pageList 标签获取单页面列表

安企CMS提供了一个名为 pageList 的模板标签,专门用于获取网站上的所有单页面数据。这个标签设计得非常简洁高效,无需复杂的参数配置即可满足大多数场景的需求。

要使用 pageList 标签,您可以这样编写模板代码:

{% pageList pages %}
    {# 循环输出单页面数据 #}
{% endpageList %}

在这里,pages 是一个自定义的变量名,它将承载从 pageList 标签获取到的所有单页面数据,这个变量是一个数组(或列表)对象。您也可以选择任何其他有意义的变量名。{% pageList pages %}{% endpageList %} 标签对将包裹您希望对每个单页面进行处理的逻辑。

遍历并显示单页面数据

由于 pages 变量是一个包含多个单页面对象的数组,我们需要使用 for 循环标签来遍历它,并逐一提取每个单页面的详细信息。在循环内部,每个单页面对象通常被命名为 item(当然,您也可以自定义这个变量名)。

每个 item 对象都包含一系列可用的字段,这些字段能够提供单页面的关键信息,例如:

  • Id:单页面的唯一标识符。
  • Title:单页面的标题,通常用于在网站上显示。
  • Link:单页面的访问链接。
  • Description:单页面的简要描述。
  • Content:单页面的详细内容。
  • Logo:单页面的主图片或大图。
  • Thumb:单页面的缩略图。

您可以根据实际需求,在循环中选择并展示这些字段。例如,要创建一个简单的单页面导航列表,您可以这样操作:

<ul>
{% pageList pages %}
    {% for item in pages %}
    <li>
        <a href="{{ item.Link }}">{{ item.Title }}</a>
    </li>
    {% endfor %}
{% endpageList %}
</ul>

这段代码会生成一个无序列表,其中每个列表项都是一个指向单页面的链接,链接文本就是单页面的标题。

过滤和自定义展示单页面

在实际应用中,我们可能不希望所有单页面都显示在同一个列表中。安企CMS的模板引擎提供了灵活的控制结构,允许我们根据特定条件过滤或自定义展示单页面。

例如,如果您想排除某个特定ID的单页面(比如ID为1的“关于我们”页面,因为它可能已经固定在主导航中),您可以在 for 循环内部添加 if 条件判断:

<ul>
{% pageList pages %}
    {% for item in pages %}
    {% if item.Id != 1 %} {# 排除ID为1的单页面 #}
    <li>
        <a href="{{ item.Link }}">{{ item.Title }}</a>
    </li>
    {% endif %}
    {% endfor %}
{% endpageList %}
</ul>

这种方法使我们能够精细地控制哪些单页面出现在列表之中,从而满足不同的设计和运营需求。此外,如果您想显示单页面的缩略图或描述,只需在循环内部引用相应的字段即可。

适用于多站点环境

安企CMS支持多站点管理,pageList 标签也考虑到了这一点。如果您在后台创建了多个站点,并且需要调用不同站点的单页面数据,可以通过 siteId 参数来指定。

{% pageList pages with siteId="2" %} {# 获取ID为2的站点的单页面列表 #}
    {% for item in pages %}
    <li>
        <a href="{{ item.Link }}">{{ item.Title }}</a>
    </li>
    {% endfor %}
{% endpageList %}

然而,在大多数单站点运营场景下,通常无需手动指定 siteId,因为 pageList 标签默认会获取当前站点的单页面数据。

后台管理与模板关联

在安企CMS的后台,单页面的管理位于“页面资源”下的“页面管理”模块。在这里,您可以创建、编辑和删除单页面,并为每个单页面设置其标题、内容、URL别名,甚至指定独立的模板文件(例如 page/detail.htmlpage/about.html)。这些后台设置直接影响到前端 pageList 标签所能获取到的数据和展示效果。例如,如果您为某个单页面自定义了URL别名,那么 item.Link 就会反映这个自定义的URL。

通过合理利用 pageList 标签及其丰富的字段,您可以轻松地在安企CMS中构建动态的单页面列表,无论是用于网站导航、信息展示还是内部管理,都能提供极大的便利和灵活性。


常见问题解答 (FAQ)

1. 我想在导航中显示我的所有单页面,但是有一个“旧版联系方式”的单页面我不想让用户看到,应该如何操作?

您可以使用 pageList 标签获取所有单页面列表后,在循环内部通过 if 条件判断来排除不想展示的页面。例如,如果“旧版联系方式”页面的标题是“旧版联系方式”,您可以这样编写代码:

<ul>
{% pageList pages %}
    {% for item in pages %}
    {% if item.Title != "旧版联系方式" %}
    <li>
        <a href="{{ item.Link }}">{{ item.Title }}</a>
    </li>
    {% endif %}
    {% endfor %}
{% endpageList %}
</ul>

或者,如果您知道该单页面的ID,使用 item.Id != [您的页面ID] 进行排除会更精确。

2. 安企CMS的单页面默认模板文件在哪里,我该如何为特定的单页面指定一个独有的模板?

安企CMS的单页面默认模板通常存放在您当前使用的模板主题目录下的 page/detail.html 文件。如果需要为某个单页面指定独有的模板,您可以在模板目录中创建一个新的模板文件,例如 page/about.html,然后在后台的“页面管理”中编辑该单页面,在“单页面模板”设置项中填写 about.html。系统会优先使用您指定的自定义模板来渲染该单页面。

3. 如何获取其他站点(在多站点模式下)的单页面列表?

如果您启用了安企CMS的多站点功能,并且需要获取非当前站点的单页面列表,可以在 pageList 标签中添加 siteId 参数。例如,如果您想获取站点ID为2的单页面列表,可以这样使用标签:{% pageList pages with siteId="2" %}...{% endpageList %}。请确保您知道目标站点的正确ID,这通常可以在后台的“多站点管理”中查看到。