织梦栏目自定义字段如何正确调用?

99ANYc3cd6
预计阅读时长 14 分钟
位置: 首页 织梦建站 正文
  1. 后台操作:在栏目管理中添加自定义字段。
  2. 前台调用:在栏目列表页或内容页的模板文件中使用标签调用这些字段。

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

假设我们要为“产品展示”这个栏目添加一个“产品规格”的自定义字段。

织梦栏目自定义字段调用
(图片来源网络,侵删)

进入栏目管理

登录织梦后台,点击菜单栏的 【栏目】 -> 【栏目管理】

选择并修改栏目

在栏目列表中,找到你想要添加自定义字段的栏目(产品展示”),点击该栏目名称或后面的 【修改】 按钮。

添加自定义字段

进入栏目修改页面后,向下滚动到页面底部,你会看到 【自定义字段】 的设置区域。

  • 如果该栏目从未添加过字段:这里可能是一个空的表单。
  • 如果已有字段:你会看到一个字段的列表,并可以继续添加新的。

点击 【添加新字段】 按钮,进入字段添加界面。

织梦栏目自定义字段调用
(图片来源网络,侵删)

填写字段信息

在字段添加表单中,你需要填写以下关键信息:

  • 字段名称:这是字段的内部标识符,只能使用英文字母、数字和下划线,且不能与系统已有字段重名,我们填写 spec
  • 字段提示会显示在后台添加/编辑文档时的输入框旁边,作为给管理员的提示,填写“产品规格”。
  • 字段类型:选择适合你数据类型的字段。
    • 文本(单行文本):用于简短的文字,如规格、型号等。
    • 文本(多行文本/文本域):用于较长的描述,如产品详情、注意事项等。
    • 数字:用于纯数字。
    • 布尔(是/否):用于开关选项。
    • 日期:用于选择日期。
    • 下拉:用于从几个固定选项中选择。
    • 枚举(单选):同下拉,但界面可能略有不同。
    • 附件:用于上传文件,如产品说明书、CAD图纸等。
    • 推荐:对于产品规格,通常选择 文本(多行文本/文本域)下拉
  • 默认值:可选,如果希望所有新添加的文档在此字段都有一个默认值,可以在这里填写。
  • 字段值:如果字段类型是“下拉”或“枚举”,在这里填写选项,每个选项用英文逗号 分隔。A型,B型,C型
  • 是否为必填项:勾选后,在后台发布文档时,该字段必须填写内容才能保存。
  • 前台显示非常重要! 勾选此项,表示该字段将在前台模板中可以被调用,如果不勾选,即使你在模板里写了标签也调用不出来。

填写完所有信息后,点击 【保存】

你回到后台的 管理】 -> 【添加文档】【编辑文档】 时,就会发现表单中已经多出了你刚刚定义的“产品规格”输入框。


第二步:前台模板调用字段

添加完字段后,就可以在网站前台模板中调用它了,调用方式根据页面类型(列表页或内容页)略有不同。

织梦栏目自定义字段调用
(图片来源网络,侵删)

在栏目列表页 (list_栏目ID.htm) 调用

假设你想在“产品展示”栏目列表页,每个产品条目后面都显示它的“产品规格”。

在织梦列表页模板中,通常使用 {dede:list}{dedarclist} 标签来循环输出文章列表,自定义字段可以直接在循环体内通过 [field:字段名 /] 的形式调用。

示例代码:

{dede:list pagesize='10'}
  <div class="product-item">
    <!-- 调用缩略图 -->
    <a href="[field:arcurl/]">
      <img src="[field:litpic/]" alt="[field:title/]">
    </a>
    <!-- 调用文章标题 -->
    <h3><a href="[field:arcurl/]">[field:title/]</a></h3>
    <!-- 调用我们自定义的“产品规格”字段 -->
    <p class="spec">规格:[field:spec/]</p>
    <!-- 调用文章摘要 -->
    <p class="summary">[field:description function='cn_substr(@me,100)'/]...</p>
  </div>
{/dede:list}

说明:

  • [field:spec/]:这里的 spec 就是在后台添加字段时填写的 “字段名称”(英文名)。
  • 你可以为它添加样式,<p class="spec">...</p>,然后在CSS文件中定义 .spec 的样式。
  • 如果字段是文本域,内容可能较长,你可以使用 function 对其进行截断,[field:spec function='cn_substr(@me, 50)'/],表示只显示前50个字符。

页 (article_栏目ID.htm) 调用

当用户点击列表中的某个产品进入详情页后,调用方式会更简单。 页模板中,使用 {dede:field.字段名 /} 来调用单个文章的自定义字段值。

示例代码:

<h1>{dede:field.title/}</h1>
<!-- 调用文章正文内容 -->
<div class="content">
  {dede:field.body/}
</div>
<!-- 在正文下方或旁边调用自定义字段 -->
<div class="product-details">
  <h2>产品详情</h2>
  <!-- 调用产品规格 -->
  <p><strong>产品规格:</strong>{dede:field.spec/}</p>
  <!-- 如果还有其他字段,产品型号”,调用方式一样 -->
  <p><strong>产品型号:</strong>{dede:field.model/}</p>
  <!-- 如果是附件类型,可以这样调用 -->
  <p><strong>下载附件:</strong><a href="{dede:field.fileurl/}">{dede:field.filename/}</a></p>
</div>

说明:

  • {dede:field.spec/}:这里的 spec 同样是后台设置的 “字段名称”
  • 这种调用方式不需要循环,因为内容页一次只显示一篇文章的内容。

常见问题与注意事项

  1. 为什么前台调用不出来?

    • 最常见的原因:在后台添加字段时,没有勾选【前台显示】选项,请回去检查并勾选。
    • 字段名称错误:检查模板中 [field:xxx/]{dede:field.xxx/}xxx 是否与后台设置的 “字段名称”(英文名)完全一致,注意大小写。
    • 模板缓存:织梦有模板缓存机制,修改模板后,请务必登录后台点击 【生成】 -> 【更新HTML】 -> 【更新栏目页】【更新文档页】,或者直接点击顶部的 【一键更新网站】,清除缓存后才能看到效果。
    • 使用了错误的标签:确认在列表页使用的是 [field:xxx/]页使用的是 {dede:field.xxx/}
  2. 需要特殊处理怎么办?

    • 和织梦系统字段一样,自定义字段也可以使用 function 属性进行PHP函数处理,换行符替换:
      {dede:field.spec function='str_replace("\n", "<br>", @me)'/}
    • 截取字符串:
      [field:spec function='cn_substr(@me, 100)'/]
  3. 列表页和内容页的标签区别一定要记牢!

    • 列表页 (循环内): [字段名][field:字段名 /]
    • 内容页 (单篇): {dede:field.字段名 /}

通过以上步骤,你就可以灵活地使用织梦的自定义字段功能,为你的网站栏目添加丰富的个性化信息了。

-- 展开阅读全文 --
头像
织梦手机端网站字体重叠,怎么解决?
« 上一篇 01-12
C语言程序设计清华大学出版社有何独特之处?
下一篇 » 01-12

相关文章

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

目录[+]