在织梦CMS(DedeCMS)中,调用首页字段是网站内容展示的核心操作,掌握不同场景下的字段调用方法,能灵活构建首页布局,以下从基础调用、高级调用、常见问题及解决方案等方面,详细解析织梦首页字段的调用技巧。

基础字段调用:常用标签与参数
织梦首页字段调用主要通过{dede:arclist}
、{dede:channel}
等标签实现,针对不同内容类型需选择对应标签。
文章列表字段调用
{dede:arclist}
是调用文章列表的核心标签,常用字段及参数如下:调用[field:title/]
,默认调用标题全文,可通过function
函数截取,如[field:title function='cn_substr(@me,30)'/]
(截取前30字符),调用:[field:description function='cn_substr(@me,80)'/]
,调用文章摘要并截取80字符,未填写摘要时默认从内容提取。
- 时间调用:
[field:pubdate function='strftime("%Y-%m-%d",@me)'/]
,格式化发布时间为“年-月-日”。 - 点击量调用:
[field:click/]
,直接调用文章点击次数,需在后台“系统参数-核心设置”中开启“启用文档点击计数”。 - 缩略图调用:
<img src="[field:litpic/]" alt="[field:title/]">
若需判断缩略图是否存在,可结合
if
语句:{dede:arclist} [field:array runphp='yes'] if(@me['litpic'] != '/images/defaultpic.gif'){ @me = '<img src="'.$_row['litpic'].'" alt="'.$_row['title'].'">'; }else{ @me = '<img src="/images/none.jpg" alt="'.$_row['title'].'">'; } [/field:array] {/dede:arclist}
栏目导航字段调用
{dede:channel}
用于调用栏目列表,基础调用如下:

- 栏目名称:
[field:typename/]
- 栏目链接:
[field:typeurl/]
- 栏目描述:
[field:description/]
示例:调用顶级栏目(typeid='0'
)及子栏目:{dede:channel type='top' row='8'} <a href="[field:typeurl/]">[field:typename/]</a> {/dede:channel} {dede:channel typeid='2' type='son' row='5'} <a href="[field:typeurl/]">[field:typename/]</a> {/dede:channel}
自定义字段调用:扩展内容展示
当默认字段无法满足需求时,需调用自定义字段(需在后台“模型-管理字段”中添加并勾选“使字段在列表页可用”)。
单行文本/多行文本字段
假设添加自定义字段author
(作者)、content_intro
简介),调用方式:
{dede:arclist} 作者:[field:author/] 简介:[field:content_intro/] {/dede:arclist}
图片类字段
若添加字段product_img
(产品图片),需注意路径处理:
{dede:arclist} <img src="[field:product_img/]" alt="[field:title/]"> {/dede:arclist}
若图片字段存储相对路径,需补全域名:[field:product_img function='str_replace("../", "https://www.example.com/", @me)'/]
。

枚举/单选字段
若字段status
(状态)选项为“热销|新品|推荐”,调用时需显示对应文字:
{dede:arclist} [field:status runphp='yes'] $types = array('热销', '新品', '推荐'); $option = explode('|', @me); @me = $types[$option[0]-1]; [/field:status] {/dede:arclist}
调用自定义字段时的参数说明
- 底层模板:通过
[field:自定义字段名/]
直接调用,若需格式化,可结合function
,如[field:price function='number_format(@me,2)'/]
(保留两位小数)。 - 关联模型:若自定义字段属于附加表(如商品模型),需在
{dede:arclist}
中添加addfields='字段名1,字段名2'
参数,否则无法调用。
综合案例:首页多模块字段调用
假设首页包含“推荐文章”“热门产品”“最新资讯”三个模块,具体调用如下:
推荐文章模块(调用带摘要和缩略图的文章)
{dede:arclist flag='c' row='4' titlelen='30' descriptionlen='80'} <div class="article-item"> <img src="[field:litpic/]" alt="[field:title/]"> <h3><a href="[field:arcurl/]">[field:title/]</a></h3> <p>[field:description function='cn_substr(@me,80)'/]...</p> <span class="time">[field:pubdate function='strftime("%m-%d",@me)'/]</span> </div> {/dede:arclist}
热门产品模块(调用自定义字段“价格”和“标签”)
{dede:arclist channelid='3' row='3' addfields='price,tag'} <div class="product-item"> <img src="[field:litpic/]" alt="[field:title/]"> <h4>[field:title/]</h4> <p>价格:¥[field:price function='number_format(@me,2)'/]</p> <span>标签:[field:tag/]</span> </div> {/dede:arclist}
注:
channelid='3'
需替换为产品模型所在的栏目ID,addfields
用于指定调用自定义字段。
最新资讯模块(调用子栏目文章)
{dede:channelartlist typeid='5,6'} <h2>{dede:field name='typename'/}</h2> <ul> {dede:arclist row='5'} <li><a href="[field:arcurl/]">[field:title/]</a></li> {/dede:arclist} </ul> {/dede:channelartlist}
注:
typeid='5,6'
指定资讯类子栏目ID,{dede:channelartlist}
可循环调用子栏目及其文章。
常见问题与解决方案
自定义字段调用不显示
- 原因:未勾选“使字段在列表页可用”或未在标签中添加
addfields
参数。 - 解决:进入后台“模型-管理字段”,编辑自定义字段,勾选“列表页使能”;在
{dede:arclist}
中添加addfields='字段名'
,如addfields='author,price'
。
缩略图调用默认图片
- 原因:文章未上传缩略图,织梦默认调用
/images/defaultpic.gif
。 - 解决:通过
if
语句判断并替换默认图片,如基础调用中的示例代码;或修改系统文件include/helpers/archive.helper.php
,找到GetMInfos
函数,修改默认图片路径。
时间格式显示异常
- 原因:未使用
function
函数格式化时间,或时区设置错误。 - 解决:通过
[field:pubdate function='strftime("%Y-%m-%d %H:%M:%S",@me)'/]
格式化;检查后台“系统参数-核心设置”中的“时间格式”配置。
相关问答FAQs
Q1: 织梦首页如何调用指定栏目的自定义字段?
A: 需在{dede:arclist}
标签中添加typeid='栏目ID'
和addfields='自定义字段名'
参数,例如调用栏目ID为“10”的“产品简介”字段:
{dede:arclist typeid='10' addfields='product_intro' row='5'} [field:product_intro/] {/dede:arclist}
Q2: 调用文章列表时,如何让标题鼠标悬停显示完整内容?
A: 使用title
属性实现,在标题标签中添加[field:title/]
作为title
值:
<a href="[field:arcurl/]" title="[field:title/]">[field:title function='cn_substr(@me,20)'/]</a>
这样鼠标悬停时会显示完整标题,同时标题文字超过20字符时自动截取。