dede list 自定义字段

99ANYc3cd6
预计阅读时长 13 分钟
位置: 首页 DEDE建站 正文
  1. 添加自定义字段:在后台数据库中为你的内容模型增加新的字段。
  2. 修改列表模板:在 list_articled.htm 模板文件中调用并显示这个新字段。
  3. 更新栏目缓存:让 DedeCMS 识别你新增的字段。
  4. 发布/编辑内容:在发布或编辑文章时,为新字段填写内容。

第一步:添加自定义字段

这是最关键的一步,你需要明确你的自定义字段要应用在哪个“内容模型”上,如果你想在“产品”栏目中使用,就应该去修改“产品”模型;如果是在“文章”栏目,则修改“文章”模型。

  1. 登录 DedeCMS 后台

  2. 进入模型管理

    • 在左侧菜单栏找到 【核心】 -> 模型管理】
    • 你会看到一个列表,里面包含了系统默认的“文章”、“图片”、“软件”等模型,点击你想要修改的模型后面的 【字段管理】 按钮。
  3. 添加新字段

    • 进入字段管理后,点击右上角的 【添加新字段】 按钮。

    • 你会看到一个字段添加表单,需要填写以下几项重要信息:

    • 字段名称:这是字段的内部标识,通常使用英文或拼音,price (价格), brand (品牌), origin (产地)。一旦设置,尽量不要修改

    • 字段提示会显示在后台发布文章时的表单里,作为给编辑的提示,填写“产品价格”或“品牌名称”。

    • 字段类型:根据你的需求选择。

      • 单行文本:用于简短文字,如品牌名、产地。
      • 多行文本(文本区域):用于较长的描述,如产品详情补充。
      • 数字:用于纯数字,如价格、数量。
      • 编辑器:用于富文本内容,可以插入图片、格式等,如详细规格说明。
      • 下拉:用于从几个固定选项中选择,如“热门”、“新品”、“推荐”。
      • 附件:用于上传文件,如产品说明书下载。
      • 图片:用于上传单张图片,如产品Logo。
      • 枚举:和“下拉”类似,但数据存储方式不同,适合少量选项。
    • 字段默认值:可选,如果希望所有新发布的文章这个字段都有默认值,可以在这里填写。

    • 是否为空:选择“否”,则发布文章时此字段为必填项。

    • 前台显示非常重要! 选择“是”,表示这个字段可以在前台模板中调用,如果只是后台用,就选“否”。

    • 搜索属性:如果希望用户可以按此字段进行搜索,可以勾选。

  4. 保存字段:填写完毕后,点击 【保存】 按钮。


第二步:修改列表模板

字段添加成功后,你需要在列表页模板中调用它才能在前台显示出来。

  1. 找到模板文件

    • 进入后台 【模板】 -> 【默认模板管理】
    • 找到你的列表栏目,点击右侧的 【列表模板】 文件名,通常是 list_articled.htm (d 代表目录ID),点击后面的 【修改】
  2. 在模板中调用字段

    • 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. 在后台左侧菜单找到 【系统】 -> 【一键更新网站】
  2. 在更新页面中,勾选 【更新栏目缓存】【更新系统缓存】
  3. 点击 【开始更新】

第四步:发布/编辑内容

你可以去发布一篇新文章或者编辑一篇旧文章,你会发现表单中多出了你刚才添加的字段,填写上相应的内容,保存即可。


完整流程示例

假设我们要做一个产品列表页,需要显示“品牌”和“市场价格”。

步骤 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:字段名/],但前提是,首页/频道页调用的是支持该字段的模型内容(比如首页调用的是“文章”模型,而你添加的字段也是在“文章”模型里)。
  • Q: 我想对自定义字段进行排序怎么办?

    • A: 在列表页的 {dede:list} 标签中,使用 orderbyorderway 属性,按 market_price 从高到低排序:{dede:list orderby='market_price' orderway='desc'}(注意:DedeCMS 默认可能不支持所有自定义字段排序,如果无效,可能需要修改系统文件或使用其他插件方案。)

通过以上步骤,你就可以轻松地在 DedeCMS 的列表页中自由地使用自定义字段了。

-- 展开阅读全文 --
头像
织梦自定义表单添加时间
« 上一篇 01-09
dede arclist分页如何实现?
下一篇 » 01-09

相关文章

取消
微信二维码
支付宝二维码