使用官方推荐标签(最常用、最简单)
织梦CMS提供了强大的内置标签,无需编写任何PHP代码即可实现。

最基础的单栏目调用
如果你想调用某个特定栏目(比如栏目ID为 代码示例: 代码解释: 如果你想同时调用多个栏目(比如栏目ID为 代码示例: 这是一个非常常见的需求,比如在首页显示“新闻中心”这个顶级栏目下所有子栏目的最新文章。 代码示例: 注意: 这里 如果你需要进行更复杂的逻辑判断,或者 代码示例: 代码解释: 给新手的建议: 希望这份详细的指南能帮助你顺利在织梦首页调取栏目文章!1)的文章列表,可以使用 arclist
{dede:arclist typeid='1' titlelen='30' row='10'}
<li>
<a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
<span>[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
</li>
{/dede:arclist}
{dede:arclist ...}:这是调用文章列表的开始和结束标签。typeid='1':核心参数,指定要调用的栏目ID,你可以在后台“栏目管理”中找到对应栏目的ID,len='30'`:标题长度,截取30个字符。row='10':调用文章的数量,这里调用10篇。[field:arcurl/]:文章的链接地址。[field:title/]:文章的标题。[field:pubdate ...]:文章的发布日期。function="MyDate('Y-m-d', @me)" 是一个函数,用于将时间戳格式化为 年-月-日 的格式。调用多个指定栏目的文章
1 和 3)的文章,只需用英文逗号隔开。
{dede:arclist typeid='1,3' titlelen='30' row='10'}
<li>
<a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
</li>
{/dede:arclist}
调用顶级栏目下的所有子栏目文章
{dede:arclist typeid='top' typeid='2' row='10'}
<li>
<a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
</li>
{/dede:arclist}
typeid='top' 是一个特殊值,但通常需要和具体的顶级栏目ID结合使用,或者直接在模板中通过其他方式获取顶级ID,更标准的写法是直接指定顶级栏目的ID,如果“新闻中心”的ID是 2,typeid='2' 就会调用其所有子栏目的文章。arclist 标签常用参数一览表
参数
说明
示例
typeid指定栏目ID,多个用逗号隔开,顶级栏目用
top。typeid='1,5,8'
row调用文章数量。
row='10'
infolen内容简介长度(字符数)。
infolen='100'
orderby排序方式,常用值:
pubdate (发布时间)、hot (点击量)、click (同hot)、sortrank (后台排序)。orderby='hot'
orderway排序方向。
desc (降序,默认)、asc (升序)。orderway='asc'
channelid指定频道模型ID,默认为文章模型
1。channelid='1'
limit分页限制,格式为
起始位置,调用数量。limit='0,5' 表示从第0篇开始,调用5篇。limit='0,5'
subday调用指定天数内发布的文章。
subday='7' (调用一周内发布的文章)
keyword关键词,调用包含指定关键词的文章。
keyword='织梦,DedeCMS'
idlist指定文章ID列表,用逗号隔开,会覆盖
typeid。idlist='10,22,35'
使用PHP代码(更灵活,适合高级用户)
arclist 标签无法满足你的需求,可以使用PHP代码直接查询数据库。
<?php
// 1. 设置查询参数
$typeid = 1; // 要查询的栏目ID
$row = 10; // 要查询的文章数量
// 2. 构建SQL查询语句
// 从 dede_archives 表中查询,只属于指定栏目ID,按发布时间降序排列,并限制数量
$sql = "SELECT id, title, pubdate, litpic FROM dede_archives WHERE typeid = $typeid ORDER BY pubdate DESC LIMIT $row";
// 3. 执行查询
$dsql = $GLOBALS['dsql'];
$articles = $dsql->GetAll($sql); // 使用 GetAll 获取所有结果
// 4. 循环输出结果
if(is_array($articles)){
foreach($articles as $article){
$arcUrl = GetOneArchive($article['id']); // 获取文章的完整链接
?>
<li>
<a href="<?php echo $arcUrl['arcurl']; ?>" title="<?php echo $article['title']; ?>">
<?php echo $article['title']; ?>
</a>
<span><?php echo date('Y-m-d', $article['pubdate']); ?></span>
</li>
<?php
}
}
?>
$typeid 和 $row:定义变量,方便修改。$sql:这是核心的SQL查询语句。
SELECT id, title, pubdate, litpic FROM dede_archives:从文章主表 dede_archives 中查询文章ID、标题、发布时间和缩略图。WHERE typeid = $typeid:条件,只查询指定栏目ID的文章。ORDER BY pubdate DESC:按发布时间降序排列,最新的在前面。LIMIT $row:限制查询结果的数量。$dsql->GetAll($sql):执行SQL查询,并将结果以数组形式返回。foreach 循环:遍历查询到的每篇文章。GetOneArchive($article['id']):这是一个织梦内置函数,根据文章ID获取文章的详细信息,包括完整的URL (arcurl)。
总结与建议
特性
标签法 (
arclist)PHP代码法
易用性
非常高,无需懂代码
较低,需要懂PHP和SQL
灵活性
较高,能满足大部分需求
非常高,可以实现任何复杂逻辑
维护性
好,标签清晰明了
较差,代码嵌入模板,不易维护
性能
优,系统已高度优化
良好,但需自己写SQL,注意效率
适用场景
99%的常规需求,如首页、栏目页列表
特殊需求,如跨表查询、复杂条件判断
arclist,它功能强大且足够应对绝大多数情况,是织梦设计的精髓所在。typeid 和 row 参数开始,确保能调出文章。orderby、titlelen 等,来定制你的输出效果。
