如何在AnQiCMS模板中获取并循环输出所有独立页面(如关于我们)?

📅 👁️ 53

在安企CMS中,有时我们需要在网站的导航栏、页脚或其他特定区域列出一些独立页面,例如“关于我们”、“联系我们”、“隐私政策”等。这些页面通常内容相对固定,不属于某个特定分类或文章模型,AnQiCMS 将它们称为“单页面”。幸运的是,AnQiCMS 提供了一个非常直观且强大的模板标签,可以轻松获取并循环输出这些单页面的信息。

核心标签:pageList

要实现在模板中获取所有单页面并进行循环输出,我们需要用到 pageList 模板标签。这个标签专门设计用于检索您在后台“页面资源”->“页面管理”中创建的所有独立页面数据。

pageList 标签的使用非常简洁,它会返回一个包含所有单页面数据的数组(或者说是一个列表对象),您可以为这个列表指定一个变量名,然后在模板中通过循环遍历这个变量来显示每个单页面的详细信息。

基础用法:获取并显示所有单页面标题和链接

最基本的用法是获取每个单页面的标题和链接,并将它们展示出来。例如,您可能想在网站底部列出所有公司信息相关的独立页面:

{# 使用 pageList 标签获取所有独立页面,并将其存储在名为 'pages' 的变量中 #}
{% pageList pages %}
    <nav class="footer-pages-nav">
        <ul>
        {# 遍历 'pages' 变量中的每一个页面,每次循环将当前页面数据赋值给 'item' #}
        {% for item in pages %}
            <li>
                {# 输出页面的链接和标题 #}
                <a href="{{ item.Link }}">{{ item.Title }}</a>
            </li>
        {% endfor %}
        </ul>
    </nav>
{% endpageList %}

在这段代码中:

  • {% pageList pages %}:告诉 AnQiCMS 模板引擎去获取所有的单页面数据,并将结果赋值给名为 pages 的变量。
  • {% for item in pages %}:这是一个标准的循环结构,它会逐一取出 pages 列表中的每个单页面数据,每次循环时将当前页面数据赋值给 item 变量。
  • {{ item.Link }}:访问当前页面(item)的链接地址。
  • {{ item.Title }}:访问当前页面(item)的标题。

深入理解:可用的页面数据字段

pageList 标签循环出的每个 item 对象,都包含了一系列实用的字段,您可以根据自己的需求灵活调用它们。这些字段包括:

  • Id:单页面的唯一标识 ID。
  • Title:单页面的标题,通常用于导航或列表显示。
  • Link:单页面的访问链接。
  • Description:单页面的描述信息,可在后台设置。
  • Content:单页面的详细内容,通常包含 HTML 格式的文本。
  • Logo:单页面的封面大图地址,可在后台上传。
  • Thumb:单页面的缩略图地址,可在后台上传。

实用场景:个性化展示与筛选

除了简单的标题和链接,我们还可以结合其他字段,实现更丰富的展示效果。

展示更多页面信息

假设您想在某个区域显示独立页面的缩略图、标题和简要描述:

{% pageList pages %}
    <div class="all-pages-overview">
    {% for item in pages %}
        <div class="page-card">
            <a href="{{ item.Link }}">
                {# 如果页面有上传 Logo 图片,则显示它 #}
                {% if item.Logo %}
                    <img src="{{ item.Logo }}" alt="{{ item.Title }}" class="page-card-image">
                {% endif %}
                <h3>{{ item.Title }}</h3>
            </a>
            {# 如果页面有描述,则显示它 #}
            {% if item.Description %}
                <p class="page-card-description">{{ item.Description }}</p>
            {% endif %}
            {# 如果需要显示部分内容,确保对 HTML 内容使用 |safe 过滤器 #}
            {# <div class="page-card-content">{{ item.Content|truncatechars:100|safe }}</div> #}
        </div>
    {% endfor %}
    </div>
{% endpageList %}

这里我们使用了 {% if item.Logo %}{% if item.Description %} 来判断这些字段是否存在,只有存在时才进行渲染,避免页面出现空白或错误。特别要注意的是,当您要输出 item.Content(页面内容)时,由于它可能包含 HTML 标签,为了确保浏览器正确解析而不是显示原始代码,您需要使用 |safe 过滤器,例如 {{ item.Content|safe }}

排除特定页面

pageList 标签会获取所有的单页面。但如果您只想显示一部分,或者想排除某些特定的单页面(例如,一个不打算在导航中显示的内部页面),可以在循环内部使用 if 条件语句进行过滤。

{# 假设我们不想在导航中显示 ID 为 5 和 10 的页面,以及标题为“旧版文档”的页面 #}
{% pageList pages %}
    <nav class="main-pages-nav">
        <ul>
        {% for item in pages %}
            {# 使用 if 语句排除指定 ID 或标题的页面 #}
            {% if item.Id != 5 and item.Id != 10 and item.Title != '旧版文档' %}
                <li>
                    <a href="{{ item.Link }}">{{ item.Title }}</a>
                </li>
            {% endif %}
        {% endfor %}
        </ul>
    </nav>
{% endpageList %}

通过这种方式,您可以灵活控制哪些页面应该在前端显示,哪些应该被隐藏。

小结与进阶提示

pageList 标签是 AnQiCMS 模板系统中一个非常实用的功能,它让独立页面的管理和展示变得异常简单。通过掌握其基础用法和可用的数据字段,您可以轻松构建出满足各种需求的页面列表。

  • 模板路径: 请记住,独立页面的默认模板通常是 page/detail.html。如果您为某个独立页面指定了自定义模板,例如“关于我们”页面使用了 page/about.html,那么确保该模板文件存在于您的模板目录中。
  • 独立页面与文章/分类的区别: 独立页面更适用于内容结构简单、更新频率较低且不需要进行复杂分类归档的页面。对于新闻、博客、产品列表等需要频繁更新和分类管理的内容,建议使用 AnQiCMS 的“内容模型”和“文档分类”功能。

在AnQiCMS中,充分利用 pageList 标签,能够有效提升您网站的结构清晰度和用户体验。


常见问题 (FAQ)

  1. Q: 我只想显示一部分独立页面,而不是全部,可以吗? A: 当然可以。pageList 标签会获取所有的独立页面,您可以在其内部的 for 循环中,使用 {% if ... %} 条件语句,根据页面 ID、标题或其他可用字段进行筛选。例如,{% if item.Id != 1 %} 可以排除 ID 为 1 的页面。

  2. **Q: 独立页面的内容 Content 字段包含了 HTML 标签,直接输出会显示源代码,怎么办?

相关文章

如何在导航栏中显示主分类,并在其下拉菜单中展示该分类下的最新产品?

在网站运营中,清晰有效的导航系统是提升用户体验和网站专业度的关键。安企CMS(AnQiCMS)凭借其灵活的内容管理和强大的模板引擎,能够帮助我们轻松实现复杂的导航需求。今天,我们就来探讨如何在网站的导航栏中,不仅展示主分类,还能在鼠标悬停时,以下拉菜单的形式呈现该分类下的最新产品。 ### 一、理解 AnQiCMS 的导航与内容管理基础 安企CMS的核心优势之一在于其模块化的内容管理体系

2025-11-08

如何在分类列表中实现多级嵌套的树状结构显示?

在构建网站分类时,我们常常需要展示清晰、有层次感的结构,让用户能够直观地理解网站内容的归属。安企CMS(AnQiCMS)提供了强大的模板标签功能,完全支持在分类列表中实现多级嵌套的树状结构显示,帮助您轻松打造用户友好的导航系统。 实现这种效果的核心在于巧妙地运用安企CMS的`categoryList`模板标签及其内建的层级判断功能。通过在模板中循环调用,您可以根据分类的父子关系

2025-11-08

如何获取并显示某个指定分类的详细信息,包括其描述、Banner图和Logo?

在内容管理系统中,分类不仅是内容的组织形式,更是网站结构与用户导航的核心。灵活地获取并展示特定分类的详细信息,如其描述、独特的Banner图和Logo,对于创建富有吸引力、信息丰富的页面至关重要。安企CMS(AnQiCMS)为此提供了直观且功能强大的模板标签,让您可以轻松实现这一需求。 ### 核心功能标签

2025-11-08

如何在模板中获取并循环输出特定Tag(标签)下的所有文档列表?

在安企CMS中,内容组织不仅可以通过传统的分类方式实现,灵活的“标签”(Tag)机制更是为内容关联和用户检索提供了广阔的空间。当您希望在网站的某个区域,例如侧边栏、相关推荐模块,甚至是一个专门的Tag聚合页面,展示特定标签下的所有文档时,安企CMS提供了强大而直观的模板标签,让这个过程变得轻而易举。 本文将深入探讨如何在安企CMS的模板中

2025-11-08

如何获取某个独立页面的完整内容、SEO信息和关联图片?

在日常的网站运营中,独立页面如“关于我们”、“联系方式”等,承担着传递核心信息、塑造品牌形象的重要职责。作为内容运营者,我们经常需要深入了解这些页面的构成,包括其主体内容、搜索引擎优化(SEO)信息以及所有关联的图片资源,以便进行精细化管理、优化迭代或灵活的页面布局。安企CMS(AnQiCMS)提供了一套直观而强大的模板标签系统,让获取这些页面数据变得轻而易举。 ###

2025-11-08

如何在AnQiCMS模板中获取并循环输出网站的友情链接列表?

在网站运营中,友情链接是提升网站权重、增加外部引流和促进合作关系的重要手段。一个管理便捷、展示灵活的友情链接功能对于任何内容管理系统都至关重要。AnQiCMS作为一个高效的内容管理系统,提供了直观的方式来管理和在模板中获取友情链接列表。 本文将详细介绍如何在AnQiCMS模板中获取并循环输出网站的友情链接列表,帮助您轻松实现网站间的互联互通。 ###

2025-11-08

如何获取并显示网站首页配置的Banner轮播图列表?

在安企CMS中,网站首页的Banner轮播图是吸引访客目光、展示核心内容的重要元素。正确地获取并展示这些Banner图,能极大提升网站的视觉效果和用户体验。安企CMS提供了直观的功能和灵活的模板标签,让我们可以轻松实现这一目标。 ### 第一步:在后台配置您的Banner轮播图 在开始在网站前端展示Banner之前,我们首先需要在安企CMS的后台管理系统中进行配置。通常

2025-11-08

如何对文章列表进行分页显示,并自定义分页导航的样式和页码数量?

在网站内容日益丰富的今天,如何高效地展示大量文章,同时确保用户浏览体验的流畅性,是每一个网站运营者需要思考的问题。安企CMS(AnQiCMS)提供了强大且灵活的文章列表分页功能,不仅能帮助网站优化内容呈现,还能通过自定义样式和页码数量,更好地融入网站整体设计,提升用户交互体验。 接下来,我们将深入探讨如何在安企CMS中实现文章列表的分页显示

2025-11-08