- 添加自定义字段:在后台数据库中为你的内容模型增加新的字段。
- 修改列表模板:在
list_articled.htm模板文件中调用并显示这个新字段。 - 更新栏目缓存:让 DedeCMS 识别你新增的字段。
- 发布/编辑内容:在发布或编辑文章时,为新字段填写内容。
第一步:添加自定义字段
这是最关键的一步,你需要明确你的自定义字段要应用在哪个“内容模型”上,如果你想在“产品”栏目中使用,就应该去修改“产品”模型;如果是在“文章”栏目,则修改“文章”模型。
-
登录 DedeCMS 后台。
-
进入模型管理:
- 在左侧菜单栏找到 【核心】 -> 模型管理】。
- 你会看到一个列表,里面包含了系统默认的“文章”、“图片”、“软件”等模型,点击你想要修改的模型后面的 【字段管理】 按钮。
-
添加新字段:
-
进入字段管理后,点击右上角的 【添加新字段】 按钮。
-
你会看到一个字段添加表单,需要填写以下几项重要信息:
-
字段名称:这是字段的内部标识,通常使用英文或拼音,
price(价格),brand(品牌),origin(产地)。一旦设置,尽量不要修改。 -
字段提示会显示在后台发布文章时的表单里,作为给编辑的提示,填写“产品价格”或“品牌名称”。
-
字段类型:根据你的需求选择。
单行文本:用于简短文字,如品牌名、产地。多行文本(文本区域):用于较长的描述,如产品详情补充。数字:用于纯数字,如价格、数量。编辑器:用于富文本内容,可以插入图片、格式等,如详细规格说明。下拉:用于从几个固定选项中选择,如“热门”、“新品”、“推荐”。附件:用于上传文件,如产品说明书下载。图片:用于上传单张图片,如产品Logo。枚举:和“下拉”类似,但数据存储方式不同,适合少量选项。
-
字段默认值:可选,如果希望所有新发布的文章这个字段都有默认值,可以在这里填写。
-
是否为空:选择“否”,则发布文章时此字段为必填项。
-
前台显示:非常重要! 选择“是”,表示这个字段可以在前台模板中调用,如果只是后台用,就选“否”。
-
搜索属性:如果希望用户可以按此字段进行搜索,可以勾选。
-
-
保存字段:填写完毕后,点击 【保存】 按钮。
第二步:修改列表模板
字段添加成功后,你需要在列表页模板中调用它才能在前台显示出来。
-
找到模板文件:
- 进入后台 【模板】 -> 【默认模板管理】。
- 找到你的列表栏目,点击右侧的 【列表模板】 文件名,通常是
list_articled.htm(d 代表目录ID),点击后面的 【修改】。
-
在模板中调用字段:
-
DedeCMS 使用特定的标签来调用字段,对于自定义字段,调用格式为:
[field:你的字段名称/]。 -
示例: 假设你在第一步中添加了一个名为
price的字段,字段提示为“产品价格”。-
简单调用:直接在
li标签内添加{dede:field.price/}。<li> <a href="[field:arcurl/]">[field:title/]</a> <span>价格:[field:price/] 元</span> </li>
-
带判断的调用:如果这个字段可能为空,不希望显示空的“价格: 元”,可以使用
if<li> <a href="[field:arcurl/]">[field:title/]</a> {dede:field.price runphp='yes'} if(@me != '') @me = "价格:" . @me . " 元"; else @me = ''; {/dede:field.price} </li>这段代码的意思是:
price字段不为空,就显示“价格:XX 元”,否则不显示任何内容。 -
调用“编辑器”类型字段:如果你添加的是
editor类型的字段,直接调用会带 HTML 标签,如果你只想显示纯文本,可以使用function='htmlspecialchars(@me)'来过滤。<div> [field:content function='htmlspecialchars(@me)'/] </div>
-
-
第三步:更新栏目缓存
这是新手最容易忽略,但又至关重要的一步,当你添加或修改了模型字段后,DedeCMS 的缓存没有更新,前台是无法正确调用新字段的。
- 在后台左侧菜单找到 【系统】 -> 【一键更新网站】。
- 在更新页面中,勾选 【更新栏目缓存】 和 【更新系统缓存】。
- 点击 【开始更新】。
第四步:发布/编辑内容
你可以去发布一篇新文章或者编辑一篇旧文章,你会发现表单中多出了你刚才添加的字段,填写上相应的内容,保存即可。
完整流程示例
假设我们要做一个产品列表页,需要显示“品牌”和“市场价格”。
步骤 1:添加字段
-
模型:文章模型
-
字段名称:
brand -
字段提示:产品品牌
-
字段类型:单行文本
-
前台显示:是
-
字段名称:
market_price -
字段提示:市场价格 (元)
-
字段类型:数字
-
前台显示:是
步骤 2:修改模板
修改 list_articled.htm 文件,在循环体内添加:
{dede:list pagesize='10'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<p>品牌:[field:brand/]</p>
<p>市场价:[field:market_price/] 元</p>
</li>
{/dede:list}
步骤 3:更新缓存 进入 【系统】 -> 【一键更新网站】,更新栏目缓存。
步骤 4:发布内容 发布一篇新文章,填写“品牌”和“市场价格”,然后去前台列表页查看效果。
常见问题与注意事项
-
Q: 为什么前台调用出来的字段是空的?
- A: 最常见的原因是“前台显示”选项没有勾选,或者没有更新栏目缓存,请仔细检查这两项。
-
Q: 为什么修改了模板后没有效果?
- A: 1. 检查模板语法是否正确,2. 确认你修改的是对应栏目的正确模板文件,3. 清理浏览器缓存,或使用 Ctrl+F5 强制刷新页面。
-
Q: 自定义字段在首页/频道页可以调用吗?
- A: 可以,调用方法和列表页一样,使用
[field:字段名/],但前提是,首页/频道页调用的是支持该字段的模型内容(比如首页调用的是“文章”模型,而你添加的字段也是在“文章”模型里)。
- A: 可以,调用方法和列表页一样,使用
-
Q: 我想对自定义字段进行排序怎么办?
- A: 在列表页的
{dede:list}标签中,使用orderby和orderway属性,按market_price从高到低排序:{dede:list orderby='market_price' orderway='desc'}。(注意:DedeCMS 默认可能不支持所有自定义字段排序,如果无效,可能需要修改系统文件或使用其他插件方案。)
- A: 在列表页的
通过以上步骤,你就可以轻松地在 DedeCMS 的列表页中自由地使用自定义字段了。
