在使用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内容的问题,以下步骤可实现此功能:
- 进入后台核心-频道模型-内容模型管理-普通文章,在列表附加字段中添加body。
- 在dede:list语句中指定addfields='body',然后通过[field:body/]调用全部内容。
{dede:list pagesize='18' addfields='body'}
[field:body/]
{/dede:list}
如需类似摘要的形式调用,可使用以下代码:
[field:body function='cn_substr(html2text(@me),200)'/]
以上代码将调出文章前200个字符的内容,经过这两步操作,可以彻底关闭系统默认的文章摘要功能。
Dedecms自带的[field:description/]字段适用于简短描述的需求,但对于较长内容则显得力不从心。希望本文能为您的Dedecms建站提供帮助。