在织梦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字符时自动截取。
