织梦 arclist 多栏目

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

arclist 标签功能强大,通过设置不同的参数,可以灵活地实现各种列表的调用需求。

织梦 arclist 多栏目
(图片来源网络,侵删)

基础语法

arclist 标签的基本语法如下:

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

实现多栏目调用的核心参数

要调用多个栏目的内容,最关键的两个参数是 typeidtypeidnot

typeid 参数:指定要包含的栏目

这个参数用于告诉织梦,你希望调用哪些栏目下的文章。

  • 单个栏目:直接填写栏目ID。

    织梦 arclist 多栏目
    (图片来源网络,侵删)
    {dede:arclist typeid='5'}

    这将只调用栏目ID为5下的文章。

  • 多个栏目(逗号分隔):用英文逗号 分隔多个栏目ID。

    {dede:arclist typeid='5,7,10'}

    这将调用栏目ID为5、7、10这三个栏目下的所有文章。

  • 包含子栏目(推荐):在栏目ID后面加上 ,表示包含该栏目及其所有一级子栏目,如果需要包含所有层级的子栏目,可以使用 typeid='5,7,10' 并配合 channelid 参数或在后台开启相关选项。

    织梦 arclist 多栏目
    (图片来源网络,侵删)
    {dede:arclist typeid='5|'}  <!-- 调用栏目5及其所有一级子栏目 -->

    注意:要调用所有层级的子栏目,最稳妥的方法是直接列出所有需要的栏目ID(包括父栏目和子栏目),或者使用 channelid 参数(见下文)。

typeidnot 参数:指定要排除的栏目

这个参数与 typeid 相反,它用于从所有栏目中排除掉你不希望显示的栏目。

  • 排除单个栏目

    {dede:arclist typeidnot='8'}

    这将调用除了栏目ID为8之外的所有栏目的文章。

  • 排除多个栏目(逗号分隔)

    {dede:arclist typeidnot='8,9,11'}

    这将调用除了栏目ID为8、9、11之外的栏目的文章。


常用辅助参数

结合核心参数,以下是一些非常有用的辅助参数,能让你的列表调用更精确、更美观。

参数 作用 示例
row 获取文章数量,指定要显示多少条记录。 row='10' 显示10条文章。
col 分列显示,与 row 配合使用,将结果分成几列显示。 row='12' col='3' 会显示12条文章,每行4条(12/3=4)。
infolen 内容简介长度,限制描述文字的长度。 infolen='100' 描述最多显示100个字符。
orderby 排序方式,按什么字段排序,常用值:click(点击量), pubdate(发布时间), id(文章ID), sortrank(文章排序)。 orderby='click' 按点击量从高到低排序。
orderway 排序方向desc (降序) 或 asc (升序),通常与 orderby 配合使用。 orderway='desc' 降序排列。
channelid 指定模型ID,如果栏目下有不同模型(如文章、图片、产品),可以用此参数指定调用哪个模型的文章,文章模型默认为1。 channelid='1' 只调用文章模型。
limit 记录范围,格式为 起始位置,记录数limit='0,5' 表示从第0条开始,取5条(即前5条)。 limit='5,10' 显示第6到第15条记录。
subday 指定天数内,只调用指定天数内发布的文章。 subday='7' 只调用最近7天内发布的文章。
noflag 排除特定属性,排除带有特定标识(如“首页推荐”)的文章。 noflag='h' 排除带有“h”标识的文章。

实战案例

假设我们有以下栏目结构:

  • 首页
  • 新闻中心 (ID: 5)
    • 国内新闻 (ID: 6)
    • 国际新闻 (ID: 7)
  • 产品中心 (ID: 8)
    • 产品A (ID: 9)
    • 产品B (ID: 10)

案例1:调用“新闻中心”及其所有子栏目的最新5篇文章

<h2>最新新闻</h2>
<ul>
    {dede:arclist typeid='5|' row='5' orderby='pubdate' orderway='desc'}
        <li>
            <a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
            <span>[field:pubdate function='MyDate("Y-m-d",@me)'/]</span>
        </li>
    {/dede:arclist}
</ul>

说明typeid='5|' 实现了调用栏目5及其所有一级子栏目(6和7)的效果。

案例2:调用“国内新闻”和“产品A”的最新文章,各显示3条,共6条

<h2>国内新闻与产品动态</h2>
<ul>
    {dede:arclist typeid='6,9' row='6' titlelen='30' orderby='pubdate'}
        <li>
            <a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
        </li>
    {/dede:arclist}
</ul>

说明typeid='6,9' 直接指定了两个不相关的栏目ID,织梦会合并这两个栏目下的文章。

案例3:调用除了“产品中心”之外的所有栏目的热门文章

<h2>热门资讯</h2>
<ul>
    {dede:arclist typeidnot='8' row='8' orderby='click' orderway='desc'}
        <li>
            <a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
            <span>阅读:[field:click/]</span>
        </li>
    {/dede:arclist}
</ul>

说明:使用 typeidnot 可以方便地排除掉某个栏目及其所有子栏目。

案例4:调用“新闻中心”下的文章,但排除“国内新闻”

<h2>国际新闻</h2>
<ul>
    {dede:arclist typeid='5' typeidnot='6' row='5' orderby='pubdate'}
        <li>
            <a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
        </li>
    {/dede:arclist}
</ul>

说明:这个组合比较特殊。typeid='5' 指定了“新闻中心”,typeidnot='6' 又从中排除了“国内新闻”,最终效果就是只调用“国际新闻”下的内容。


重要提示

  1. 栏目ID获取:你可以在织梦后台的【栏目管理】中,将鼠标悬停在某个栏目上,浏览器状态栏会显示其ID,或者直接点击栏目进入编辑,URL中也能看到 cid=xxx
  2. 缓存问题:织梦有模板缓存,修改了 arclist 标签后,如果前台页面没有立即更新,请到后台【生成】->【更新HTML】->【更新栏目HTML】或【更新主页HTML】来刷新缓存。
  3. 性能考虑typeid 中包含的栏目ID越多,数据库查询的开销就越大,尽量避免在一个页面上调用过多、过深的栏目,如果网站栏目结构非常复杂,建议考虑使用SQL语句直接查询,性能更高。

希望这份详细的指南能帮助你熟练掌握织梦 arclist 的多栏目调用!

-- 展开阅读全文 --
头像
c语言 shellexecute
« 上一篇 2025-12-23
c语言程序设计教程第三版习题答案
下一篇 » 2025-12-23

相关文章

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

目录[+]