第一步:在后台添加新字段
这是最核心的一步,你需要为 archives 表(文章表)添加一个新的字段。
-
登录织梦后台 使用你的管理员账号登录织梦CMS后台。
-
进入模型管理 在左侧菜单栏中,找到并点击 【系统】 -> 【系统基本参数】 -> 模型管理】。
-
选择图片集模型模型管理页面,你会看到系统中所有可用的模型,找到名为 “图片集” 的模型,点击其右侧的 【字段管理】 按钮。
-
添加新字段 进入字段管理页面后,点击右上角的 【添加新字段】 按钮。
-
填写字段信息 这是最关键的一步,请根据你的需求填写以下信息:
- 字段名称: 这是数据库的字段名,只能使用英文、数字和下划线,
photographer(摄影师),location(拍摄地点),camera(相机型号) 等。注意: 这是你之后在模板中调用时要用到的名字。 - 字段提示: 这是在后台发布内容时,给管理员看的提示文字,请输入摄影师姓名”、“请输入拍摄地点”,这个文字会出现在后台编辑框的上方。
- 字段类型: 根据你的数据类型选择。
- 文本: 用于简短的文字,如姓名、地点。
- 多行文本: 用于较长的描述,如图片故事、拍摄心得。
- 数字: 用于数字,如价格、数量。
- 枚举: 用于固定的几个选项,如风格选择(风光、人像、纪实)。
- 日期: 用于日期选择。
- 复选框: 用于多选。
- 编辑器: 用于富文本,可以插入图片、格式化文字。
- (默认) 单选: 用于单选,如风格选择。
- (默认) 图片: 用于上传一张图片。
- (默认) 附件: 用于上传文件。
- 字段值: 如果选择了“单选”、“复选框”、“枚举”等类型,在这里填写选项,格式为
选项名1|选项值1,选项名2|选项值2。风光|fengguang,人像|renxiang,纪实|jishi。 - 默认值: 可选,为该字段设置一个默认值。
- 是否为空: 通常选择“否”,表示这个字段为必填项。
- 显示在发布页: 强烈建议勾选,这样你才能在后台发布图片集时看到并填写这个新字段。
- 高亮显示: 勾选后,这个字段在后台会以醒目的方式显示。
示例:我们添加一个“摄影师”字段
- 字段名称:
photographer - 字段提示:
摄影师姓名 - 字段类型:
文本 - 是否为空:
否 - 显示在发布页:
是
- 字段名称: 这是数据库的字段名,只能使用英文、数字和下划线,
-
保存字段 填写完所有信息后,点击页面底部的 【保存】 按钮。
第二步:在后台发布内容时填写新字段
添加完字段后,你需要在发布一张新的图片集或编辑旧图片集时,为这个新字段填入内容。
-
进入“添加图片集”页面 在后台,点击 【核心】 -> 发布管理】 -> 【添加图片集】。
-
填写新字段 在正常的图片集内容填写区域(如标题、缩略图、简介等)下方,你会看到刚刚添加的 “摄影师姓名” 字段提示框,在里面填入相应的内容。
-
正常发布 像往常一样上传图片、填写简介,然后点击 【发布】 或 【保存】 按钮,这样,新字段的数据就已经被成功保存到数据库的
archives表中了。
第三步:在模板文件中调用新字段
这是最后一步,也是用户最终能看到效果的一步,你需要修改图片集的列表页和内容页模板。
在图片集列表页调用 (list_image.htm)
在列表页,你通常需要调用新字段来展示摘要信息。
调用方法:
使用 示例:
假设我们在 代码解释: 页,你可以调用新字段的完整内容,通常放在图片展示区域的上方或下方。 调用方法:
同样使用 示例:
假设我们在 代码解释: 为什么修改后页面没有变化? 如何对字段内容进行二次处理?
你可以使用PHP函数。 或者更通用的方法: 如果字段类型是“编辑器”或“多行文本”,可以直接调用吗?
可以,直接使用 通过以上三个步骤,你就可以完美地在织梦图片集中添加并调用任何你想要的新字段了。{dede:field.新字段名/}
list_image.htm 想显示每个图片集的摄影师,在需要显示的位置,加入以下代码:{dede:list pagesize='12'}
<div class="pic-item">
<a href="[field:arcurl/]">
<img src="[field:litpic/]" alt="[field:title/]" />
</a>
<h3><a href="[field:arcurl/]">[field:title/]</a></h3>
<!-- 在这里调用新字段 -->
<p class="photographer">摄影师: <span>{dede:field.photographer/}</span></p>
<p class="description">[field:description function='cn_substr(@me,100)'/]...</p>
</div>
{/dede:list}
{dede:list} 是列表页的循环标签。{dede:field.photographer/} 就是调用我们第一步中定义的字段名为 photographer 的内容。在图片集内容页调用 (
article_image.htm){dede:field.新字段名/} 标签,在内容页,你还可以用 {dede:field.新字段名/} 直接获取值,并用PHP进行二次处理。article_image.htm 想在图片集标题下方显示摄影师和拍摄地点(假设我们还有一个 location 字段)。<!DOCTYPE html>
<html>
<head>{dede:field.title/}</title>
</head>
<body>
<div class="article-content">
<h1>{dede:field.title/}</h1>
<!-- 在这里调用新字段 -->
<div class="article-info">
<span>摄影师: {dede:field.photographer/}</span>
<span>拍摄地点: {dede:field.location/}</span>
<span>发布时间: {dede:field.pubdate function='MyDate('Y-m-d H:i',@me)'/}</span>
</div>
<div class="article-body">
<!-- 图片集正文内容 -->
{dede:field.body/}
</div>
</div>
</body>
</html>
{dede:field.photographer/} 和 {dede:field.location/} 分别调用了两个字段。<span>、<div> 等标签来美化它们的显示样式。
常见问题与注意事项
{dede:field.xxx/} 的 xxx 是否和后台“字段名称”完全一致,包括大小写。photographer 字段存储的是 "张三",你想让它显示为 "摄影:张三"。{dede:field.photographer function='str_replace("张三", "摄影:张三", @me)'/}
{dede:field.photographer runphp='yes'}
@me = "摄影:" . @me;
{/dede:field.photographer}
{dede:field.字段名/} 即可,如果字段类型是“编辑器”,它会保留你设置的HTML格式(如换行、加粗等)。
