织梦CMS list标签如何调用新增字段?

99ANYc3cd6
预计阅读时长 15 分钟
位置: 首页 织梦建站 正文
  1. 后台添加自定义字段:在数据库中为你的内容模型(文章模型”)增加一个新的字段。
  2. 前台模板修改标签:在列表页模板文件中,修改{dede:list}标签,使其能循环并输出这个新字段。

下面我将为你提供最详细、最标准的图文步骤说明。


第一步:在后台添加自定义字段

这是最关键的一步,假设我们要为一个“文章模型”添加一个名为 author_intro (作者简介) 的自定义字段。

进入模型管理

登录织梦CMS后台,找到并点击菜单栏的: 【核心】 -> 【内容模型管理】

模型管理](https://img-blog.csdnimg.cn/20250512152235744.png)

选择并修改对应的内容模型

模型管理页面,你会看到系统默认的模型,如“文章”、“图片”等,找到你需要修改的模型,文章模型”,然后点击其右侧的 【管理字段】 按钮。

添加新字段

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

填写字段信息

在弹出的表单中,填写新字段的各项信息:

  • 字段名称这是最重要的,必须使用英文字母、数字或下划线,author_intro,这个名称将直接用于模板标签调用。
  • 字段别名:这是在前台显示给用户看的名称,可以使用中文,作者简介”。
  • 字段类型:根据你的需求选择,对于简介类的文本,选择 “单行文本”“多行文本(文本区域)” 即可,如果是图片,就选“图片”,依此类推。
  • 字段大小:对于文本类型,可以设置输入框的长度。
  • 默认值:(可选)设置一个默认值。
  • 是否为空:如果允许不填写,选择“是”。
  • 字段提示:(可选)在后台发布内容时,会给用户显示的提示文字。
  • 前台显示务必勾选此项!如果不勾选,这个字段即使有数据也无法在前台模板中调用。

填写完毕后,点击 【保存】

重要提示:添加新字段后,系统会提示你需要更新一下数据库结构,请务必按照提示,点击一个按钮来执行数据库更新操作,这一步会自动在 dede_archives(主表)或 dede_addonarticle(附加表)中为你创建新的列。

发布测试内容

为了确保字段可用,去后台发布一篇新文章,你会发现在文章编辑界面出现了你刚刚添加的“作者简介”输入框,填入一些测试内容并发布。


第二步:在前台模板中调用新增字段

你的数据库和后台都已经准备好了,接下来就是修改模板文件来显示这些数据。

找到列表页模板文件

列表页的模板文件通常位于你的模板目录下,路径类似于: /templets/default/list_article.htm

(请根据你实际使用的模板路径进行修改)

修改 {dede:list}

织梦的列表标签有两种形式:{dede:list}{dede:arclist}在列表页(list_xxx.htm)中,必须使用 {dede:list}

默认的{dede:list}标签可能只循环调用主表(dede_archives)的字段,如 titlepubdateclick 等,而我们新增的字段 author_intro 通常存放在附加表(如 dede_addonarticle)中。

为了调用附加表中的字段,你需要给 {dede:list} 标签添加一个属性:addfields

语法格式:

{dede:list addfields='新增字段1,新增字段2' pagesize='10'}
    <!-- 循环体内的内容 -->
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
        <p>作者简介:[field:author_intro/]</p> <!-- 这里就是调用我们新增的字段 -->
        <span>发布时间:[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
    </li>
{/dede:list}

参数解释:

  • addfields='...'核心参数,用英文逗号 隔开所有需要从附加表中调用的自定义字段名称。addfields='author_intro,another_field'
  • pagesize='10':每页显示的文章数量,这是常规用法。

完整示例

假设你的 list_article.htm 文件内容如下:

{dede:list addfields='author_intro' pagesize='10'}
    <li>
        <!-- [field:title/] 是默认就有的,调用文章标题 -->
        <h3><a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a></h3>
        <!-- [field:author_intro/] 就是我们新增的字段 -->
        <div class="intro">
            <strong>作者简介:</strong>[field:author_intro/]
        </div>
        <div class="info">
            <span>发布时间:[field:pubdate function="MyDate('Y-m-d',@me)"]</span>
            <span>浏览次数:[field:click/]</span>
        </div>
    </li>
{/dede:list}
<!-- 分页标签 -->
<div class="page">{dede:pagelist listitem="info,index,end,pre,next,pageno" listsize="5"/}</div>

保存并刷新页面

将修改后的模板文件保存,然后去你的网站前台列表页刷新,你应该就能看到每篇文章下方都出现了“作者简介:”以及你之前填写的测试内容了。


常见问题与注意事项

  1. 数据调不出来怎么办?

    • 检查 addfields:确保 addfields 里的字段名和你在后台添加的“字段名称”完全一致,区分大小写。
    • 检查前台显示:回到后台 【核心】-> 【内容模型管理】-> 【管理字段】,确认该字段的“前台显示”选项是已勾选状态。
    • 检查数据:去后台确认对应的文章是否真的填写了这个字段的内容。
    • 检查缓存:有时候浏览器缓存会导致看不到效果,尝试 Ctrl + F5 强制刷新页面,或者清除浏览器缓存。
    • 检查数据库:如果以上都正确,可以去数据库里直接查询 dede_addonarticle 表,看看数据是否成功插入。
  2. {dede:list}{dede:arclist} 的区别?

    • {dede:list}:用于列表页list_xxx.htm),它通过 SQL 查询直接从数据库分页获取数据,性能较好,但灵活性相对较低,调用附加表字段必须使用 addfields
    • {dede:arclist}:用于首页、频道页、文章页等任何地方,它通过缓存机制获取数据,功能非常强大,可以使用各种底层模板(如 likein 等),但性能略低于 {dede:list},调用附加表字段使用 channelidaddfields 两个参数配合。
  3. 字段类型不同,调用方式有区别吗?

    • 文本、数字:直接使用 [field:字段名/] 即可。
    • 多行文本:直接使用 [field:字段名/],它会保留换行符,如果想在HTML中正确显示换行,可以加上 nl2br 函数:[field:字段名 function='nl2br(@me)'/]
    • 编辑器(内容):直接使用 [field:字段名/]
    • 图片:直接使用 [field:字段名/] 输出的是图片地址,如果需要输出完整的 <img> 标签,需要用PHP代码处理,通常不直接在列表页这样做。
    • 下拉、单选:直接使用 [field:字段名/] 输出的是你设置的值。
    • 多选:输出的值是逗号分隔的字符串,你可能需要用PHP的 explode 函数来分割处理。

通过以上步骤,你就可以轻松地在织梦CMS的列表页中调用任何你新增的自定义字段了。

-- 展开阅读全文 --
头像
dede web.config 伪静态规则怎么写?
« 上一篇 12-05
2025南开二级C语言100考点有哪些?
下一篇 » 12-05

相关文章

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