在网站内容运营中,我们经常会遇到需要展示多样化信息的情况。传统的CMS可能只提供固定的“文章”或“产品”类型,当业务需求更为复杂时,例如需要展示房产信息、招聘岗位、活动日程等,这些固定类型往往显得捉襟见肘。这时候,AnQiCMS灵活的内容模型功能就显得尤为重要,它允许我们为特定业务需求量身定制数据结构,并将其内容在前端以我们希望的方式呈现。
一、为什么需要自定义内容模型?
想象一下,如果你的网站不仅要发布新闻稿,还要展示各种型号的商品,或者作为招聘平台发布职位信息。如果所有这些不同类型的内容都挤在一个“文章”模型里,管理起来将非常混乱,前端展示也会变得复杂,用户体验大打折扣。搜索引擎也难以理解内容的真实意图,影响SEO效果。
自定义内容模型正是为了解决这些问题而生。它能够让你根据业务的实际需求,为不同类型的内容定义独立的字段和属性。例如:
- 房产信息: 可能需要“户型”、“面积”、“价格”、“所在小区”、“楼层”、“房源图片集”等字段。
- 产品详情: 可能需要“产品编号”、“品牌”、“规格参数”、“详细图片”、“客户评价”等字段。
- 招聘岗位: 可能需要“职位名称”、“薪资范围”、“工作地点”、“岗位职责”、“任职要求”等字段。
通过这种方式,每一种内容类型都有其专属的数据结构,后台管理更加清晰高效,前端展示也能做到精准匹配,极大地提升了网站的专业性和用户友好度。AnQiCMS正是以其“灵活的内容模型”为核心优势之一,赋能运营者轻松应对这些挑战。
二、在 AnQiCMS 中创建和配置自定义内容模型
在 AnQiCMS 中创建自定义内容模型是一个直观且功能强大的过程。它主要通过后台的“内容管理”模块来完成。
1. 定义您的内容模型
首先,我们需要进入 AnQiCMS 后台,导航到“内容管理”下的“内容模型”选项。在这里,你可以看到系统默认的“文章模型”和“产品模型”。要创建一个新的内容模型,我们可以选择“添加模型”或直接修改现有模型以适应更广泛的需求。
在定义模型时,几个关键项需要仔细填写:
- 模型名称: 这是在后台识别模型的中文名称,例如“房源信息”、“招聘职位”。
- 模型表名: 这个非常重要,它是该模型数据在数据库中存储的表名,必须是英文小写字母。它也是前端模板中调用该模型内容时
moduleId参数的token值或在模板路径中作为文件夹名使用的依据,例如house_listing或job_post。 - URL别名: 用于伪静态URL的组成,建议使用英文小写字母,便于SEO和用户记忆。
- 标题名称: 这是发布内容时,主标题字段的提示文本,例如将“文章标题”改为“房源名称”或“职位名称”。
2. 添加模型专属的自定义字段
核心功能在于“内容模型自定义字段”。这里你可以为你的新模型添加任何你需要的独特字段。点击“添加字段”,你可以设置:
- 参数名: 这是在后台编辑内容时,字段旁边显示的中文提示,例如“户型”、“薪资”、“活动日期”。
- 调用字段: 这是在前端模板中调用该字段内容时使用的变量名,必须是英文字母。例如,如果参数名是“户型”,调用字段可以是
houseType。这个字段名在模板中将直接用于获取数据。 - 字段类型: AnQiCMS 提供了多种字段类型来适应不同数据的存储需求,包括:
- 单行文本: 适用于短文本,如标题、简称。
- 数字: 适用于价格、数量、面积等。
- 多行文本: 适用于描述、详情等较长文本。
- 单项选择/多项选择/下拉选择: 适用于预设选项,如“户型(一室、二室)”、“学历(本科、硕士)”。通过在“默认值”中每行填写一个选项来定义。
- 是否必填: 根据业务需求设置该字段是否为必填项。
- 默认值: 为字段提供一个初始值,特别是选择类型字段的选项列表。
仔细设计这些字段,它们将直接影响你内容的结构化程度和前端展示的灵活性。
3. 将内容与模型关联:分类与文档发布
创建了自定义内容模型后,下一步就是将实际内容与它关联起来。
- 创建分类: 在“内容管理”下的“文档分类”中,当你添加新的顶级分类时,可以选择其“文档模型”。选择你刚刚创建的自定义模型,那么这个分类及其下属的所有内容都将遵循该模型的字段结构。
- 发布内容: 当你在对应模型的分类下发布新的文档时(例如“添加文档”),你会发现除了常规的标题、简介、内容等字段外,页面上会自动出现你为该模型自定义的所有字段。编辑人员只需根据提示,填写相应的数据即可。
至此,您的业务数据已经按照定制的结构被录入到 AnQiCMS 中,接下来就是如何在网站前端将这些内容优雅地展示出来。
三、在前端模板中优雅地显示自定义内容
AnQiCMS 采用 Django 模板引擎语法,结合其强大的模板标签,使得自定义内容的显示既灵活又高效。
1. 理解模板文件约定与结构
AnQiCMS 的模板文件存放在 /template 目录下,每个独立的模板集都有自己的子目录和 config.json 文件。为了显示自定义模型的内容,我们通常会用到以下约定:
- 模型列表页:
{模型table}/index.html,例如house_listing/index.html。 - 模型详情页:
{模型table}/detail.html,例如house_listing/detail.html。 - 静态资源(CSS, JS, 图片等)则统一放在
/public/static/目录下。
这些命名约定让 AnQiCMS 能够自动识别并应用相应的模板,为我们省去了大量的配置工作。
2. 列表页内容展示:archiveList 与 archiveFilters 标签
要在自定义模型的列表页(如 house_listing/index.html)