如何在 AnQiCMS 模板中显示网站的所有单页面列表?

📅 👁️ 54

在网站运营中,我们经常需要创建一些独立的页面,比如“关于我们”、“联系方式”、“服务条款”或者一些专题介绍页面。这些页面通常被称为“单页面”,它们内容固定,不属于常规的文章或产品分类,但却是网站不可或缺的一部分。

当你的网站上积累了大量的单页面时,你可能会希望在一个特定的位置,例如网站底部、侧边栏,甚至是一个专门的页面上,集中展示这些单页面的列表,方便访客浏览和查找。AnQiCMS 提供了一种非常直观且灵活的方式,让你在网站模板中轻松实现这一需求。

AnQiCMS 中的单页面管理

在 AnQiCMS 的后台,你可以通过“页面资源”下的“页面管理”功能来创建和编辑这些单页面。每个单页面都有自己的名称、内容、自定义URL,甚至可以设置缩略图和SEO信息。这些丰富的属性为我们在前端展示时提供了极大的灵活性。

在 AnQiCMS 模板中显示单页面列表

要将这些后台创建的单页面展示到你的网站模板中,AnQiCMS 提供了一个专门的模板标签:pageList。这个标签能够帮助我们获取所有的单页面数据,并在模板中进行遍历渲染。

通常,你会将这段代码放置在网站的公共区域,比如页脚(footer.html)、侧边栏(aside.html),或者一个独立的列表页面。

首先,你需要使用 {% pageList pages %} 标签来获取所有的单页面数据。pages 是一个临时的变量名,你可以根据自己的喜好来命名。这个变量将包含一个单页面对象的数组,我们可以通过 for 循环来逐一处理这些页面。

以下是一个基础的示例,它会列出所有单页面的标题和链接:

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

在这段代码中:

  • {% pageList pages %}:这是获取所有单页面的关键标签,它将页面数据赋值给 pages 变量。
  • {% for item in pages %}{% endfor %}:这是一个标准的循环结构,item 变量在每次循环中代表一个单独的单页面对象。
  • {{ item.Link }}:会输出当前单页面的访问链接。
  • {{ item.Title }}:会输出当前单页面的标题。

丰富单页面列表的显示内容

AnQiCMS 为每个单页面对象提供了多个可用的字段,你可以根据设计需求在列表中展示更多信息。除了标题和链接,常用的字段还包括:

  • item.Description:单页面的简介。
  • item.Thumb:单页面的缩略图地址(如果已上传)。
  • item.Id:单页面的唯一ID。

例如,如果你希望在列表中显示单页面的缩略图和简介,可以这样修改模板代码:

<div class="single-page-list">
    {% pageList pages %}
        {% for item in pages %}
            <div class="page-item">
                <a href="{{ item.Link }}">
                    <h3>{{ item.Title }}</h3>
                    {% if item.Thumb %} {# 判断是否有缩略图 #}
                        <img src="{{ item.Thumb }}" alt="{{ item.Title }}" class="page-thumb">
                    {% endif %}
                    <p>{{ item.Description }}</p>
                </a>
            </div>
        {% endfor %}
    {% endpageList %}
</div>

这里我们增加了 {% if item.Thumb %} 来判断单页面是否有缩略图,避免在没有图片时显示空白的 <img> 标签,提升页面的整洁性。

排除特定单页面

有时候你可能不希望所有单页面都显示在列表中,例如某个内部使用的单页面。虽然 pageList 标签本身没有直接提供“排除”参数,但你可以利用模板的条件判断(if 标签)在循环中跳过特定的页面。

假设你想排除 ID 为 10 和 12 的单页面,你可以这样编写:

<nav>
    <ul class="single-page-nav">
        {% pageList pages %}
            {% for item in pages %}
                {% if item.Id != 10 and item.Id != 12 %} {# 排除ID为10和12的页面 #}
                    <li>
                        <a href="{{ item.Link }}">{{ item.Title }}</a>
                    </li>
                {% endif %}
            {% endfor %}
        {% endpageList %}
    </ul>
</nav>

通过这种方式,你可以在模板层面灵活控制哪些页面参与显示。

多站点环境下调用单页面列表

如果你在使用 AnQiCMS 的多站点管理功能,并且希望在一个站点的模板中调用另一个站点的单页面列表,pageList 标签也提供了 siteId 参数。只需指定目标站点的 ID,即可实现跨站点调用:

{# 调用ID为2的站点的单页面列表 #}
<ul class="other-site-pages">
    {% pageList pages with siteId="2" %}
        {% for item in pages %}
            <li><a href="{{ item.Link }}">{{ item.Title }}</a></li>
        {% endfor %}
    {% endpageList %}
</ul>

实用技巧与建议

  1. URL别名与SEO: 在后台创建单页面时,合理设置“自定义URL”和“SEO标题”、“关键词”、“简介”,能够帮助搜索引擎更好地理解和收录你的单页面,提升搜索排名。确保 URL 结构简洁易懂,避免过长或含有无关字符。
  2. 导航集成: 单页面列表常被用于网站主导航或辅助导航。结合 AnQiCMS 的“网站导航设置”功能,将重要的单页面手动添加到导航中,可以进一步提升用户访问的便捷性。
  3. 模板约定: AnQiCMS 推荐使用 page/detail.html 作为单页面的默认模板。如果你为特定单页面创建了例如 page/about.html 这样的自定义模板,记得在后台的单页面编辑界面中进行指定。
  4. 内容简介的运用: item.Description 在列表展示中尤为重要,它能让访客快速了解页面内容,决定是否点击。在后台编辑单页面时,务必撰写吸引人且信息丰富的简介。

通过 pageList 标签,AnQiCMS 让网站运营者能够轻松地在前端模板中展示和管理单页面列表,无论是作为网站导航的补充,还是信息展示的一部分,都提供了强大的支持。灵活运用这些功能,将帮助你更好地组织网站内容,提升用户体验。


常见问题 (FAQ)

1. 我能否控制单页面列表的排序方式? 是的,AnQiCMS 允许你通过后台的“页面管理”界面,在编辑单页面时设置“显示顺序”字段。数字越小,页面在列表中会越靠前显示。pageList 标签会默认遵循你在后台设置的这个排序规则。

2. 如果单页面内容很多,在列表页中获取所有单页面的 item.Content 会不会影响页面加载性能? 不会影响性能。pageList 标签在循环时,item 对象默认并不会包含完整的 Content 字段数据,它主要提供像 IdTitleLinkDescriptionThumb 等列表所需的基本信息。只有当用户点击链接进入单页面详情页时,pageDetail 标签才会加载页面的完整内容。这种设计避免了在列表页加载过多不必要的数据,从而保证了页面加载速度。

3. 如何让单页面列表只显示特定“类型”的页面,而不是所有单页面?例如,只显示“公司介绍”相关的单页面? AnQiCMS 的单页面功能本身没有“类型”分类的概念,所有单页面都作为独立的个体存在。如果你需要对单页面进行分类或分组展示,通常有两种策略:

*   **在后台手动指定:** 为每个单页面添加一个自定义字段,例如“页面组别”,并在其中填写“公司介绍”、“产品说明”等。然后,在模板中使用 `{% if item.CustomField == '公司介绍' %}` 进行条件判断,来只显示特定组别的页面。
*   **利用页面ID进行选择性显示/排除:** 像文章中演示的那样,通过 `{% if item.Id == X %}` 或 `{% if item.Id != Y %}` 的方式,手动选择需要显示或排除的特定页面ID,以实现类似“类型”筛选的效果。

相关文章

AnQiCMS 如何获取并显示某个分类的详细信息,如分类标题、描述和缩略图?

在安企CMS中,获取并展示某个分类的详细信息是构建动态网站不可或缺的一部分,无论是用于创建分类列表、分类专题页,还是在文章详情页中展示所属分类的信息,安企CMS都提供了简洁而强大的模板标签来实现。 <h3>深入理解 `categoryDetail` 标签</h3> 安企CMS的模板系统采用了类似Django的语法,其中 `categoryDetail`

2025-11-07

如何在 AnQiCMS 模板中显示特定分类下的所有文章列表?

在 AnQiCMS 中构建网站时,我们经常需要让页面内容更加灵活,以满足不同版块的展示需求。其中一个非常普遍的需求,就是如何在模板中精确地显示某个特定分类下的所有文章列表。AnQiCMS 凭借其基于 Go 语言的高效架构和类似 Django 的模板引擎语法,让这项任务变得既直观又强大。 模板文件在 AnQiCMS 中通常以 `.html` 为后缀,存放在 `/template` 目录下

2025-11-07

AnQiCMS 模板如何显示当前页面的面包屑导航路径?

在网站运营中,清晰的导航路径对于用户体验至关重要。面包屑导航(Breadcrumb Navigation)就像现实生活中的线索,它清晰地展示了用户在网站中的当前位置,让用户一目了然地知道自己身处何处,并能快速返回上一级或更高级别的页面。这不仅能帮助用户快速理解网站结构,提升用户体验,对于搜索引擎优化(SEO)也大有裨益,因为它能帮助搜索引擎更好地理解网站的层级结构。 AnQiCMS

2025-11-07

如何在 AnQiCMS 网站导航中创建支持二级下拉菜单的多级导航?

在网站运营中,清晰高效的导航系统是用户体验的关键,也是搜索引擎优化的重要一环。AnQiCMS 提供了灵活的导航设置功能,让网站管理者可以轻松创建和管理多级导航菜单,其中包括支持二级下拉菜单的功能。接下来,我们将一起了解如何在 AnQiCMS 中实现这一目标。 ### 第一步:在后台配置导航链接 首先,您需要登录 AnQiCMS 的后台管理界面,进入导航设置模块。 1.

2025-11-07

AnQiCMS 模板如何获取并显示某个单页面的详细内容和Banner图?

在安企CMS中,要获取并显示特定单页面的详细内容及其关联的Banner图,主要涉及理解单页面的管理方式和掌握模板标签的灵活运用。AnQiCMS 提供了直观的后台管理界面和强大的模板引擎,让这项工作变得简单高效。 ### 深入了解安企CMS中的单页面 安企CMS的“单页面”功能专为那些结构固定、内容相对独立、无需频繁更新的页面设计,例如“关于我们”、“联系方式”、“服务介绍”等。在后台

2025-11-07

如何在 AnQiCMS 网站中显示后台管理的友情链接列表?

在 AnQiCMS 网站中显示后台管理的友情链接列表,是一个非常实用的功能,它不仅有助于提升网站的 SEO 效果,也能为访问者提供更多有价值的外部资源。AnQiCMS 提供了一套简洁高效的机制来管理和展示这些链接,让即使是初次接触的用户也能轻松上手。 要实现友情链接的展示,我们主要分两步进行:首先,在 AnQiCMS 的后台管理系统中配置和维护友情链接;其次

2025-11-07

AnQiCMS 模板如何将文章发布时间戳格式化为易读的日期和时间?

在网站内容运营中,文章的发布时间往往是用户关注的焦点之一,它不仅影响用户阅读的兴趣,也对内容的实效性和权威性有着潜在的影响。然而,数据库中存储的时间信息通常是机器可读的时间戳格式,例如一串数字,这对于普通访问者来说是难以理解的。AnQiCMS 充分考虑到了这一点,提供了灵活的方式让您将这些时间戳转化为清晰易读的日期和时间格式,极大地提升了用户体验。 AnQiCMS在后台管理文章时

2025-11-07

如何在 AnQiCMS 模板中显示文章的自定义字段内容(如作者、来源)?

AnQiCMS以其灵活的内容模型和强大的模板标签系统,为网站内容的个性化展示提供了极大的便利。在网站运营中,我们常常需要为文章、产品或其他内容添加一些标准字段之外的信息,例如文章的作者、内容来源、产品批次号、或特定的SEO信息等。这些非标准化的信息,AnQiCMS称之为“自定义字段”,它们能够让你的网站内容更加专业、详尽,并满足特定的业务需求。 ### 理解自定义字段的价值 自定义字段的引入

2025-11-07