在网站开发中,调用文章的正文内容(body)是一项常见的需求。本文将详细介绍两种在首页和列表页调用文章正文内容的方法,帮助开发者更高效地实现这一功能。

第一种方法:使用arclist标签

这种方法通过DedeCMS的`arclist`标签实现,具体代码如下:

{dede:arclist row='1' typeid='1' addfields='body' idlist='1' channelid='1'}
[field:body function='cn_substr(html2text(@me),100)'/]
{/dede:arclist}
    

### 解析: 1. **addfields='字段1,字段2...'** 指定需要额外调用的字段,这里为`body`。 2. **idlist='文章ID'** 可选参数,指定特定文章的ID。如果不需要限定特定文章,可以省略此参数。 3. **channelid='模型ID'** 模型ID通常为1(普通文章),可以通过后台的核心->频道模型->内容模型管理查看具体的ID号。 4. **function='cn_substr(html2text(@me),100)'** 这段代码的作用是过滤掉HTML标签,并限制输出字符长度为100。

列表页调用

如果需要在列表页调用`body`内容,可以使用`list`标签。首先确保后台设置中已添加`body`字段到列表附加字段中: 1. 进入后台->核心->频道模型->内容模型管理->普通文章(选择你的模型)->更改->基本设置->列表附加字段。 2. 确保字段中有`body`。 然后使用以下代码:

{dede:list pagesize='10' addfields='body'}
[field:body function='cn_substr(html2text(@me),100)'/]
{/dede:list}
    

第二种方法:使用SQL语句

另一种方法是直接通过SQL语句从数据库中调取`body`内容。示例代码如下:

{dede:sql sql="SELECT body FROM `dede_addonarticle` where aid = 1"}
[field:body function='cn_substr(html2text(@me),100)'/]
{/dede:sql}
    

### 解析: 1. **修改表前缀** 默认表前缀为`dede_`,请根据你的数据库实际前缀进行修改。 2. **指定文章ID** 在`aid = 1`中,将数字1替换为你需要调取的文章ID。
这两种方法各有优劣,第一种方法适合大多数常规场景,而第二种方法则提供了更高的灵活性,尤其适用于需要精确控制数据来源的情况。根据实际需求选择合适的方法,可以有效提升开发效率和用户体验。