织梦如何调用栏目的最新文章?

99ANYc3cd6
预计阅读时长 18 分钟
位置: 首页 织梦建站 正文

使用 arclist 标签(最常用、最灵活)

arclist 是织梦最核心、最强大的文章列表标签,几乎可以满足所有文章列表的调用需求。

织梦调用栏目最新文章
(图片来源网络,侵删)

基本语法

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

参数详解

  • typeid='栏目ID'这是最关键的参数,用于指定你要调用哪个栏目的文章。

    • 如何获取栏目ID?登录织梦后台 -> 核心 -> 频道管理 -> 鼠标移到目标栏目上,浏览器状态栏或链接地址中会显示 typeid=数字,这个数字就是栏目ID。
    • 如果要调用多个栏目的文章,用英文逗号隔开,typeid='1,3,5'
    • 如果要调用顶级栏目的所有子栏目文章,可以使用 typeid='top'
  • row='10':表示调用文章的数量,'10' 代表调用10条。 len='30'显示的字数长度,'30'` 代表最多显示30个汉字(一个汉字算一个字符)。

  • orderby='pubdate':表示文章的排序方式。

    • pubdate:按发布时间排序(默认)。
    • click:按点击量排序。
    • id:按文章ID排序。
    • sortrank:按文章排序级别排序。
  • flag='h':文章特殊属性。

    织梦调用栏目最新文章
    (图片来源网络,侵删)
    • h:头条。
    • c:推荐。
    • p:图片。
    • f:幻灯。
    • s:滚动。
    • a:特荐。
    • b:图文。
    • j:跳转。 可以组合使用,flag='hc' 表示调用“头条”和“推荐”的文章。
  • innertext='':此参数可以自定义单个列表项的HTML模板,上面的 li 结构可以直接写在这里。

完整示例

假设我们要调用栏目ID为 2 的最新5篇文章,标题显示20个字。

HTML 代码:

<h3>栏目ID为2的最新文章</h3>
<ul>
    {dede:arclist typeid='2' row='5' titlelen='20' orderby='pubdate'}
        <li>
            <a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
            <span class="time">[field:pubdate function='MyDate('Y-m-d', @me)'/]</span>
        </li>
    {/dede:arclist}
</ul>

说明:

织梦调用栏目最新文章
(图片来源网络,侵删)
  • [field:arcurl/]:文章的链接地址。
  • [field:title/]:文章的标题。
  • [field:pubdate function='MyDate('Y-m-d', @me)'/]:文章的发布时间,这里使用了一个函数 MyDate 来格式化时间,格式为 年-月-日

使用 channelartlist 结合 arclist(用于调用子栏目的最新文章)

这个方法通常用于首页或列表页,需要先循环父栏目,然后在每个父栏目下循环其子栏目的最新文章。

基本语法

{dede:channelartlist typeid='父栏目ID'}
    <h2>{dede:field name='typename'/}</h2>
    <ul>
        {dede:arclist row='5' titlelen='20'}
            <li>
                <a href="[field:arcurl/]">[field:title/]</a>
                <span>[field:pubdate function='MyDate('Y-m-d', @me)'/]</span>
            </li>
        {/dede:arclist}
    </ul>
{/dede:channelartlist}

参数详解

  • {dede:channelartlist}:循环父栏目。

    • typeid='父栏目ID':指定要循环的父栏目,如果留空,默认循环所有顶级栏目。
    • {dede:field name='typename'/}:获取当前循环到的父栏目的名称。
  • {dede:arclist}:在 {channelartlist} 内部使用时,它会自动默认调用当前父栏目下的所有子栏目的文章,无需再指定 typeid

完整示例

假设我们要调用顶级栏目(ID为1)下的所有子栏目的最新文章,每个子栏目显示3条。

HTML 代码:

<div class="sub-news-list">
    {dede:channelartlist typeid='1'}
        <div class="sub-channel">
            <h3>{dede:field name='typename'/} <span>/ 最新文章</span></h3>
            <ul>
                {dede:arclist row='3' titlelen='22' orderby='pubdate'}
                    <li>
                        <a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
                        <em>[field:pubdate function='MyDate('m-d', @me)'/]</em>
                    </li>
                {dede:arclist}
            </ul>
        </div>
    {/dede:channelartlist}
</div>

使用 SQL 查询标签(最灵活,适合复杂需求)

arclist 标签无法满足非常复杂的查询条件时,可以直接使用 SQL 语句进行查询。

⚠️ 警告: 直接使用 SQL 有一定的风险,SQL 语句写错,可能会导致网站报错,请确保你的 SQL 语法正确,并且有数据库备份。

基本语法

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

参数详解

  • sql="...":在这里写入你的 SQL 查询语句。
    • dede_archives:织梦存放文章核心数据的表名,请勿随意修改
    • typeid = '2':指定栏目ID。
    • arcrank > -1:这是一个非常重要的条件,用于过滤掉被审核人删除或待审核的文章,arcrank = -1 通常表示文章被删除,加上这个条件可以保证调用到正常的文章。
    • ORDER BY pubdate DESC:按发布时间倒序排列,即最新的在最前面。
    • LIMIT 0,10:从第0条开始,获取10条数据,等同于 row='10'

字段映射

在 SQL 查询中,你查询出的字段(如 id, title, arcurl)需要用 [field:字段名/] 的方式来调用。

  • id:文章ID。:文章标题。
  • arcurl:文章链接。
  • pubdate:文章发布时间(时间戳格式)。
  • description
  • litpic:文章缩略图。

总结与推荐

方法 优点 缺点 适用场景
arclist 简单、高效、官方推荐,功能强大 对于极特殊需求可能不够灵活 90% 的场景都推荐使用此方法,特别是调用单个或多个栏目的文章列表。
channelartlist 结构清晰,适合处理父子栏目嵌套关系 语法相对固定,不如 arclist 灵活 首页、列表页,需要按父栏目分组显示其子栏目文章时。
sql 查询标签 灵活性极高,可以实现任何复杂的查询 有一定风险,对 SQL 语法有要求,可能影响性能 arclist 无法实现的复杂筛选、排序、关联查询等高级需求。

对于绝大多数用户来说,强烈建议你优先使用 arclist,它足以应对绝大多数的调用需求。

-- 展开阅读全文 --
头像
dede中途数据库失败,原因何在?
« 上一篇 03-04
织梦网站app生成器,一键生成靠谱吗?
下一篇 » 03-04

相关文章

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