织梦展示置顶文章列表如何实现?

99ANYc3cd6
预计阅读时长 13 分钟
位置: 首页 织梦建站 正文
  1. 直接调用系统自带的“置顶文档”频道:这是最简单、最标准的方法,直接利用织梦的后台功能。
  2. 使用自定义SQL调用:这种方法更灵活,可以完全自定义显示的字段和排序规则,适合有特殊需求的场景。

下面我将详细介绍这两种方法,并提供完整的代码示例。

织梦展示置顶文章列表
(图片来源网络,侵删)

使用系统内置的“置顶文档”频道(推荐)

这是最官方、最稳定的方法,推荐大多数用户使用。

步骤 1:在后台创建“置顶文档”栏目

  1. 登录织梦后台,进入【栏目管理】。
  2. 点击顶部的【增加顶级栏目】。
  3. 在弹出的表单中填写以下信息:
    • 栏目名称:填写 置顶文档 或你喜欢的名字,如 首页头条
    • 栏目类型:选择 外部链接
    • 链接地址:输入 javascript:; (这是一个空执行的JavaScript,防止页面跳转)。
    • :选择 列表
    • 列表模板:选择一个你准备好的列表模板,list_article.htm 的副本,或者你专门为此创建的模板。
    • 其他选项:根据需要设置,比如是否生成HTML、是否支持投稿等。
    • 勾选“允许发布文档”:这一步很重要,否则无法添加文章。
  4. 点击【确定】保存。

你的后台左侧菜单栏就会出现一个名为“置顶文档”的栏目。

步骤 2:添加置顶文章

  1. 在后台左侧菜单中,点击你刚刚创建的 “置顶文档” 栏目。
  2. 点击【增加普通文章】。
  3. 正常填写文章标题、内容等信息。
  4. 在文章编辑界面的下方,找到 “文档选项” 栏。
  5. 勾选“置顶” 选项。
  6. 点击【确定】或【发布】。

步骤 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=33 就是它的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,有一定门槛
- 如果表结构变更,代码可能失效
- 绕过了织梦的缓存机制,可能对性能有轻微影响
推荐场景 - 大多数网站,特别是新手或追求稳定性的用户
- 置顶文章有专门的管理需求
- 高级用户,有特殊排序或筛选需求
- 不想后台栏目列表变得臃肿的用户

对于绝大多数用户,强烈推荐使用方法一,因为它最符合织梦的设计理念,也最易于维护,只有在方法一无法满足你的特定需求时,才考虑使用方法二。

-- 展开阅读全文 --
头像
织梦首页怎么调用搜索
« 上一篇 今天
dede采集规则怎么写
下一篇 » 今天

相关文章

取消
微信二维码
支付宝二维码

目录[+]