在安企CMS中,根据分类ID在前台筛选并显示相关文章列表,其实很简单!
安企CMS以其高效、灵活的特点,让内容管理和展示变得轻松。无论您是运营企业官网、行业资讯站,还是个人博客,都可能遇到需要根据特定分类显示文章列表的需求。例如,在首页展示某个“热门推荐”分类的文章,或者在某个专题页面集中展示特定“产品案例”。今天,我们就来聊聊如何在安企CMS的前台模板中,精准地实现这一功能。
第一步:找出您需要的分类ID
要筛选文章,首先得知道您要筛选的是哪个分类。在安企CMS的后台,找到“内容管理”菜单下的“文档分类”。在这里,您可以清晰地看到所有已创建的分类及其详细信息。
通常,每个分类的名称旁边都会有一个数字ID,或者在编辑分类时,地址栏中也能找到id=X这样的参数,这个X就是您需要的分类ID。例如,某个分类名为“行业新闻”,它的ID可能是15。请记下这个数字,我们稍后会在模板代码中使用它。
第二步:选择合适的模板文件进行编辑
接下来,您需要决定在哪里显示这些文章列表。常见的场景有:
- 分类列表页:如果您想在某个分类页面(如“行业新闻”列表页)展示该分类下的文章,通常会编辑该分类对应的模板文件。安企CMS默认的分类列表模板路径是
{模型table}/list.html,例如文章模型会是article/list.html。更精细地,您可以为特定分类创建自定义模板,如article/list-15.html(其中15是分类ID),这样只有ID为15的分类才会使用这个模板。 - 网站首页或其他自定义页面:如果您希望在首页或者某个自定义页面(如
index/index.html或page/about.html)显示某个特定分类的文章,那么直接编辑这些模板文件即可。
安企CMS的模板文件使用类似Django的语法,后缀是.html,存放在/template目录下。您可以直接在后台的“模板设计”中进行在线编辑,或者通过FTP工具下载到本地编辑后再上传。
第三步:使用archiveList标签来获取文章数据
安企CMS提供了功能强大的archiveList标签,专门用于获取文档列表。这个标签允许您通过多种参数进行筛选和排序。
要根据分类ID筛选文章,核心参数就是categoryId。
假设我们要在首页显示ID为15的“行业新闻”分类下的文章,并且希望显示10篇文章:
{# 使用 archiveList 标签获取文章数据,并指定 categoryId 为 15 #}
{% archiveList articles with categoryId="15" moduleId="1" type="list" limit="10" order="id desc" %}
{# 接着,通过 for 循环遍历每一篇文章 #}
{% for article in articles %}
<div class="article-item">
<h3><a href="{{ article.Link }}">{{ article.Title }}</a></h3>
{% if article.Thumb %}
<div class="article-thumb">
<img src="{{ article.Thumb }}" alt="{{ article.Title }}">
</div>
{% endif %}
<p class="article-description">{{ article.Description }}</p>
<div class="article-meta">
<span>发布时间:{{ stampToDate(article.CreatedTime, "2006年01月02日") }}</span>
<span>阅读量:{{ article.Views }}</span>
{# 如果需要显示文章所属分类的名称,可以使用 categoryDetail #}
<span>分类:{% categoryDetail with name="Title" id=article.CategoryId %}</span>
</div>
</div>
{% empty %}
<p>当前分类下暂时没有文章。</p>
{% endfor %}
{% endarchiveList %}
让我们来详细解读一下这个标签中的几个关键参数:
articles:这是一个自定义的变量名,您可以随意命名,它将承载从标签中获取到的文章数据列表。在for循环中,我们就可以通过article(这里是articles列表中的单个元素)来访问每篇文章的详细信息。categoryId="15":这就是我们用来指定分类ID的关键参数。您可以将其替换为您要筛选的实际分类ID。moduleId="1":这个参数用来指定内容模型。在安企CMS中,1通常代表“文章模型”,2代表“产品模型”。确保您填写的是正确的模型ID,否则可能无法获取到数据。type="list":表示我们想要获取一个简单的文章列表,不带分页功能。如果您希望文章列表是分页的,需要将其设置为type="page",并在文章列表下方配合pagination标签使用。limit="10":限制文章显示的数量,这里是显示最新的10篇文章。order="id desc":指定文章的排序方式。id desc表示按文章ID降序排列(通常意味着最新发布的文章在前)。您也可以使用views desc来按阅读量降序排列(热门文章在前),或者sort desc(按