当前位置:首页 > 行业动态 > 正文

如何通过两种方法在首页和列表页调用文章body内容?

在织梦教程中,首页和列表页调用文章body内容可以通过两种方法实现。第一种方法是使用dede:arclist标签,将body字段添加到该标签的field属性中。第二种方法是使用GetBody函数,通过传递文章ID作为参数来获取文章的body内容。

首页、列表页调用文章body内容的两种方法

在织梦(DedeCMS)中,首页和列表页默认只显示文章的简介内容,而不显示全文,如果希望在这些页面上调用文章的完整正文内容(即body部分),可以通过以下两种方法实现。

方法一: 修改模板文件

1、定位模板文件

对于首页,通常需要修改的是index.htm文件。

对于列表页,则是list_article.htm或者你自定义的列表模板文件。

2、编辑模板文件

打开对应的模板文件,找到控制文章列表输出的部分。

将显示简介的标签如[field:description/]替换为显示正文的标签[field:body/]。

3、保存并上传

保存修改后的模板文件。

通过FTP或者其他方式上传至服务器的相应目录。

4、清除缓存并测试

清除DedeCMS的缓存。

访问首页或列表页查看效果。

方法二: 使用Dede标签函数

1、创建自定义函数

在include目录下创建一个PHP文件,例如命名为getBody.php。

在该文件中编写函数,用于获取文章的body内容。

function getBody($aid, $cID){
    $dsql = new DedeSql(false);
    $row = $dsql>GetOne("Select body From#@__archives where id='$aid'");
    return $row['body'];
}

2、注册自定义函数

在member目录下找到config.php文件。

在文件末尾添加代码以包含你的自定义函数文件。

require_once(DEDEROOT."/include/getBody.php");

3、在模板中调用函数

在需要显示全文的模板位置调用getBody函数,传入文章ID和栏目ID作为参数。

{getBody('[field:id/]', '[field:typeid/]')}

4、更新并检查

保存模板文件并上传。

清除缓存后,访问页面以确认函数调用成功并正确显示文章内容。

相关问答FAQs

Q1: 修改模板后,文章列表页没有显示文章全文是什么原因?

A1: 请检查以下几点:

确保你修改了正确的模板文件。

确保使用的标签正确,例如[field:body/]而不是[field:description/]。

清除DedeCMS的缓存,有时候缓存会导致页面不显示最新更改。

如果问题依旧,请检查是否有其他插件或代码影响了输出。

Q2: 使用自定义函数无法调用文章内容怎么办?

A2: 可以尝试以下步骤进行排查:

确认getBody.php文件路径和编码正确,并且已经成功被config.php包含。

确认getBody函数中的SQL查询语句正确无误,并且能够从数据库中获取到数据。

检查模板中函数调用的语法是否正确,确保传入的参数类型与函数定义一致。

清除DedeCMS缓存,查看是否是缓存导致的问题。

如果以上步骤都无法解决问题,建议检查日志文件或联系DedeCMS官方支持寻求帮助。

是关于在织梦系统中首页和列表页调用文章body内容的两种方法的介绍及相关问题的解答,在实际操作时,请根据自己的实际情况选择合适的方法,并注意备份文件和数据以防万一。

0