dede如何调用所有文章?

99ANYc3cd6
预计阅读时长 19 分钟
位置: 首页 DEDE建站 正文

使用 {dede:arclist} 标签(最常用)

{dede:arclist} 是 DedeCMS 最核心、最灵活的文章列表标签,适用于绝大多数场景,比如首页、列表页、内容页等。

dede 调用所有文章
(图片来源网络,侵删)

基础语法

{dede:arclist flag='' typeid='' row='' col='' titlelen='' orderby='' keyword=''}
    <a href='[field:arcurl/]'>[field:title/]</a>
    <span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
{/dede:arclist}

参数详解

  • typeid (栏目ID)

    • typeid='0':调用所有栏目的文章(包括所有子栏目)。
    • typeid='1,2,3':调用指定多个栏目ID下的文章。
    • typeid='top':调用顶级栏目下的文章。
    • 如果不写此参数,默认调用当前栏目的文章及其子栏目的文章。
  • row (调用数量)

    • row='10':表示调用10篇文章。
    • row='' 或不写,默认调用10篇。
  • col (分列)

    • col='2':将调用的文章分2列显示,通常与 row 配合使用,row='6' col='2' 会显示3行2列共6篇文章。
  • titlelen (标题长度)

    dede 调用所有文章
    (图片来源网络,侵删)
    • titlelen='30'最多显示30个字符(一个汉字算2个字符,一个字母算1个字符)。
  • orderby (排序方式)

    • orderby='pubdate':按发布时间降序(默认)。
    • orderby='hot':按点击量(浏览量)降序。
    • orderby='click':同上,按点击量降序。
    • orderby='sortrank':按文章排序级别(后台设置)降序。
    • orderby='id':按文章ID降序。
    • orderby='rand':随机调用文章。
    • orderby='weight':按文章权重降序(权重越高,排序越靠前)。
  • orderway (排序顺序)

    • orderway='desc':降序(默认)。
    • orderway='asc':升序。
  • keyword (关键词)

    • keyword='关键词1,关键词2':调用包含指定关键词的文章。
  • flag (特殊属性)

    • flag='h':调用头条文章。
    • flag='c':调用推荐文章。
    • flag='p':调用图片集文章。
    • flag='a':调用带图片的文章。
    • 可以组合使用,如 flag='hc' 表示调用“头条”且“推荐”的文章。
  • innertext (模板内容)

    • 这是 {dede:arclist} 的一个强大功能,可以自定义每个列表项的HTML结构。

实例:调用所有文章,按发布时间排序,显示10篇

这是最符合你问题“调用所有文章”的直接答案。

{dede:arclist typeid='0' row='10' orderby='pubdate' orderway='desc'}
    <li>
        <a href="[field:arcurl/]" title="[field:title/]" target="_blank">[field:title/]</a>
        <span class="time">[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
    </li>
{/dede:arclist}

代码解释:

  • typeid='0':确保调用所有栏目的文章。
  • row='10':显示10篇。
  • orderby='pubdate' orderway='desc':按发布时间倒序排列(最新的在最前面)。
  • [field:arcurl/]:文章链接。
  • [field:title/]
  • [field:pubdate function="MyDate('Y-m-d',@me)"/]:发布日期,通过 function 函数格式化为 年-月-日 的格式。

使用 {dede:list} 标签(仅用于列表页)

{dede:list} 标签专门用于列表模板(list_*.htm)中,它的作用是分页列出当前栏目下的所有文章。

重要特点:

  1. 只能在列表页使用:如果你把它放在首页 (index.htm) 或内容页 (article_*.htm),它不会显示任何内容。
  2. 自动分页:它会自动根据后台的“列表每页条数”设置进行分页。
  3. 默认调用当前栏目:它不能像 arclist 那样通过 typeid 指定其他栏目。

基础语法(在列表页模板 list_xxx.htm 中)

{dede:list pagesize='20'}
    <li>
        <a href="[field:arcurl/]" title="[field:title/]" target="_blank">[field:title/]</a>
        <span class="time">[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
    </li>
{/dede:list}

分页代码{dede:list} 标签之后,通常需要加上分页代码。

<div class="dede_pages">
    <ul>
        {dede:pagelist listsize='4' listitem='info,index,end,pre,next,pageno'}
        </ul>
</div>

使用SQL语句调用(最灵活,适合复杂需求)

arclistlist 标签无法满足复杂的查询条件时(调用特定时间段、特定作者、特定自定义字段的文章),可以直接使用SQL语句。

基础语法

{dede:sql sql='SELECT * FROM `dede_archives` ORDER BY pubdate DESC LIMIT 0, 10'}
    <a href='[field:arcurl/]'>[field:title/]</a>
    <span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
{/dede:sql}

代码详解

  • sql='...':这里写标准的SQL查询语句。

    • SELECT * FROM dede_archives:从文章主表 dede_archives 中查询所有字段。dede_ 是你的表前缀,如果你的表前缀不是 dede_,需要修改。
    • ORDER BY pubdate DESC:按发布时间降序排序。
    • LIMIT 0, 10:从第0条记录开始,查询10条。LIMIT 起始位置, 数量
  • 注意

    • 使用SQL需要你对DedeCMS的数据表结构有一定了解。
    • SQL语句中不能出现 dede: 等模板标签,必须是纯SQL。
    • 调用出来的字段需要用 [field:字段名/] 来显示。

更复杂的SQL实例(调用所有文章,并按权重排序)

{dede:sql sql='SELECT * FROM `dede_archives` WHERE arcrank > -1 ORDER BY weight DESC, pubdate DESC LIMIT 0, 15'}
    <li>
        <a href="[field:arcurl/]" title="[field:title/]" target="_blank">[field:title/]</a>
        <span>权重:[field:weight/]</span>
    </li>
{/dede:sql}

代码解释:

  • WHERE arcrank > -1:这是一个非常实用的条件,arcrank 是文章审核状态字段,-1 为待审核,0 为正常,> -1 表示只调用已审核的正式文章。
  • ORDER BY weight DESC, pubdate DESC:先按权重降序,权重相同的再按发布时间降序。

总结与推荐

方法 适用场景 优点 缺点
{dede:arclist} 首页、列表页、内容页等任何地方 功能强大,参数灵活,是首选 参数较多,初学者需要学习
{dede:list} *仅限列表页 (`list_.htm`)** 自动分页,调用当前栏目非常方便 功能单一,只能在列表页用,无法调用全站
{dede:sql} 复杂查询、特殊需求 灵活性最高,可以实现任何逻辑 需要SQL知识,有一定风险(如果SQL写错可能导致页面出错)

给你的最终建议:

如果你的需求是在网站的某个位置(如首页、侧边栏)显示全站的文章列表,请直接使用方法一 ({dede:arclist})。

代码示例(推荐):

<!-- 调用全站所有已审核文章,按发布时间倒序,显示12篇 -->
{dede:arclist typeid='0' row='12' orderby='pubdate' orderway='desc' flag=''}
    <div class="article-item">
        <h3><a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a></h3>
        <p class="meta">作者:[field:writer/] &nbsp; 发布时间:[field:pubdate function="MyDate('Y-m-d',@me)"]</p>
        <p class="summary">[field:description function='cn_substr(@me, 100)']...</p>
    </div>
{/dede:arclist}

这个例子调用了全站 (typeid='0') 的所有文章 (flag='',即没有特殊限制,包含了已审核的普通文章),按最新发布排序,显示12篇,并且展示了标题、作者、时间和摘要的完整信息。

-- 展开阅读全文 --
头像
c语言程序设计教程习题答案
« 上一篇 今天
苏小红C语言程序设计答案是否正确?
下一篇 » 今天

相关文章

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

目录[+]