在使用Dedecms进行网站建设时,列表页调用文章正文内容是一项常见需求。本文将详细介绍如何实现这一功能,帮助您更好地优化网站内容展示。


通常情况下,在列表页面获取文章的简单描述可以使用description标签完成。然而,当需要展示更多内容时,则需要对系统进行一些调整。


在制作Dedecms CMS模板时,有时我们需要调用文章的部分内容。但[field:description/]标签提供的字数有限(数据库字段设计为varchar(255)),并且修改文章内容后摘要还需手动更新。因此,直接调用文章正文内容成为更优的选择。


实现Dedecms列表页调用文章正文的方法主要有两种,均基于dede:arclist标签。如果使用dede:list标签,第一种方法可能无法正常工作。


{dede:arclist flag='h' row='10'}

[field:title/]

[field:id runphp='yes'] $aid = @me; $row = $GLOBALS['dsql']->GetOne("Select body From 'dede_addonarticle' where aid='$aid' "); @me = cn_substr(strip_tags("{$row['body']}"),400);[/field:id]【阅读详细】

{/dede:arclist}

上述代码中的数字400用于设置调用内容的长度。由于调用的是body字段的内容,若包含HTML代码也会被调用出来,这可以通过html2text()函数解决。


第二种方法利用了Dedecms自定义模型的功能,将文章模板的body字段视为自定义字段进行调用。以下是具体代码:


{dede:arclist row='10' addfields='body' channelid='1'}

[field:body function='cn_substr(html2text(@me),600)'/]…

详情 {/dede:arclist}

这种方法的具体说明如下:


  • addfields='字段一,字段二...'
  • idlist: 文章编号,用于调用指定内容
  • function='cn_substr(html2text(@me),600)': 将文章内容转换为纯文本格式
  • channelid:模型编号,默认文章模型为1,可在后台核心-内容模型管理中查看

相较之下,第二种方法更为简洁明了,推荐优先使用。


关于dede:list标签调用body内容的问题,以下步骤可实现此功能:


  1. 进入后台核心-频道模型-内容模型管理-普通文章,在列表附加字段中添加body。
  2. 在dede:list语句中指定addfields='body',然后通过[field:body/]调用全部内容。

{dede:list pagesize='18' addfields='body'}
  • [field:body/]

    [field:title/]

  • {/dede:list}

    如需类似摘要的形式调用,可使用以下代码:


    [field:body function='cn_substr(html2text(@me),200)'/]

    以上代码将调出文章前200个字符的内容,经过这两步操作,可以彻底关闭系统默认的文章摘要功能。


    Dedecms自带的[field:description/]字段适用于简短描述的需求,但对于较长内容则显得力不从心。希望本文能为您的Dedecms建站提供帮助。