- 直接调用系统自带的“置顶文档”频道:这是最简单、最标准的方法,直接利用织梦的后台功能。
- 使用自定义SQL调用:这种方法更灵活,可以完全自定义显示的字段和排序规则,适合有特殊需求的场景。
下面我将详细介绍这两种方法,并提供完整的代码示例。

(图片来源网络,侵删)
使用系统内置的“置顶文档”频道(推荐)
这是最官方、最稳定的方法,推荐大多数用户使用。
步骤 1:在后台创建“置顶文档”栏目
- 登录织梦后台,进入【栏目管理】。
- 点击顶部的【增加顶级栏目】。
- 在弹出的表单中填写以下信息:
- 栏目名称:填写
置顶文档或你喜欢的名字,如首页头条。 - 栏目类型:选择 外部链接。
- 链接地址:输入
javascript:;(这是一个空执行的JavaScript,防止页面跳转)。 - :选择 列表。
- 列表模板:选择一个你准备好的列表模板,
list_article.htm的副本,或者你专门为此创建的模板。 - 其他选项:根据需要设置,比如是否生成HTML、是否支持投稿等。
- 勾选“允许发布文档”:这一步很重要,否则无法添加文章。
- 栏目名称:填写
- 点击【确定】保存。
你的后台左侧菜单栏就会出现一个名为“置顶文档”的栏目。
步骤 2:添加置顶文章
- 在后台左侧菜单中,点击你刚刚创建的 “置顶文档” 栏目。
- 点击【增加普通文章】。
- 正常填写文章标题、内容等信息。
- 在文章编辑界面的下方,找到 “文档选项” 栏。
- 勾选“置顶” 选项。
- 点击【确定】或【发布】。
步骤 3:在首页模板中调用
你需要在你想要显示置顶文章列表的模板文件(通常是 index.htm)中,使用织梦的标签来调用这个栏目的文章。
打开 /templets/default/index.htm 文件(请先备份),在你想要显示的位置(比如轮播图下方)插入以下代码:

(图片来源网络,侵删)
<h2 class="title">网站头条 / 置顶文章</h2>
<ul class="dlist">
{dede:arclist typeid='你创建的置顶文档栏目的ID' titlelen='30' row='10'}
<li>
<span class="date">[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
<a href="[field:arcurl/]" title="[field:title/]" target="_blank">[field:title/]</a>
</li>
{/dede:arclist}
</ul>
代码解释:
{dede:arclist ...}:这是织梦的文章列表调用标签。typeid='你创建的置顶文档栏目的ID':这是最关键的参数,你需要将'你创建的置顶文档栏目的ID'替换成你实际创建的栏目的ID,如何找到ID?在后台【栏目管理】中,鼠标移动到“置顶文档”栏目上,浏览器左下角状态栏会显示链接,如dede/content_list.php?cid=3,3就是它的ID,len='30'`:标题长度,限制显示30个字符。row='10':显示的文章数量,这里设置为10篇。[field:pubdate ...]:文章发布日期,并使用MyDate函数格式化为年-月-日。[field:arcurl/]:文章的链接地址。[field:title/]:文章的标题。
如何让置顶文章排在最前面?
默认情况下,arclist 标签会按照后台设置的排序规则(如发布时间倒序)来调用文章,织梦的底层逻辑会自动将 ismake 值为1(即置顶)的文章排在最前面,所以你不需要做额外设置,只要 typeid 正确,置顶文章就会优先显示。
使用自定义SQL调用(更灵活)
如果你不想创建额外的栏目,或者想在一个列表里同时显示普通文章和置顶文章(并让置顶的排在最前),可以使用自定义SQL。
这种方法直接查询数据库,获取所有 ispart (是否为跳转页) 不为1,且 iscommend (是否为推荐,包含置顶) 不为0的文章。
在首页模板中调用
打开 /templets/default/index.htm,插入以下代码:
<h2 class="title">网站头条 / 置顶文章</h2>
<ul class="dlist">
{dede:sql sql="SELECT * FROM `dede_archives` WHERE `iscommend` = 1 AND `arcrank` >= 0 ORDER BY `pubdate` DESC"}
<li>
<span class="date">[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
<a href="[field:arcurl/]" title="[field:title/]" target="_blank">[field:title/]</a>
</li>
{/dede:sql}
</ul>
代码解释:
{dede:sql ...}:织梦的自定义SQL查询标签。sql="SELECT * FROMdede_archives:这是SQL查询语句。dede_archives是织梦存放文章基本信息的核心表,如果你的表前缀不是dede_,需要修改。WHERE iscommend = 1:这是核心条件。iscommend字段为1代表文章被推荐,而置顶文章的iscommend值也是1,所以这个条件可以精准地筛选出所有置顶文章。AND arcrank >= 0:这个条件非常重要,用于过滤掉审核未通过(arcrank为负数)的文章,只显示已发布的正常文章。ORDER BY pubdate DESC:按发布时间降序排列,确保最新的置顶文章在最上面。
[field:pubdate/],[field:arcurl/],[field:title/]:这些是SQL查询结果中的字段,用法和方法一中一样。
总结与对比
| 特性 | 方法一 (系统频道) | 方法二 (自定义SQL) |
|---|---|---|
| 优点 | - 官方标准,稳定可靠 - 管理方便,后台一目了然 - 与织梦其他功能(如栏目缓存)无缝集成 |
- 灵活性极高,可写任意复杂SQL - 不需要创建额外栏目,保持结构简洁 - 可与其他类型文章混合调用 |
| 缺点 | - 需要在后台创建一个专门栏目 | - 直接操作SQL,有一定门槛 - 如果表结构变更,代码可能失效 - 绕过了织梦的缓存机制,可能对性能有轻微影响 |
| 推荐场景 | - 大多数网站,特别是新手或追求稳定性的用户 - 置顶文章有专门的管理需求 |
- 高级用户,有特殊排序或筛选需求 - 不想后台栏目列表变得臃肿的用户 |
对于绝大多数用户,强烈推荐使用方法一,因为它最符合织梦的设计理念,也最易于维护,只有在方法一无法满足你的特定需求时,才考虑使用方法二。
