织梦dede arclist

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

基本语法

{dede:arclist} 的基本结构如下:

织梦dede arclist
(图片来源网络,侵删)
{dede:arclist flag='' typeid='' row='' col='' titlelen='' infolen='' imgwidth='' imgheight='' listtype='' orderby='' keyword='' limit=''}
    <a href='[field:arcurl/]'>[field:title/]</a>
    <p>[field:info/]</p>
    <img src='[field:litpic/]' />
    <span>发布时间:[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
    <span>点击:[field:click/]</span>
    <span>作者:[field:writer/]</span>
    <span>来源:[field:source/]</span>
    <span>评论:[field:postnum/]</span>
{/dede:arclist}

核心属性(常用参数)

这些属性决定了你调用哪些文章、调用多少、如何排序等。

属性名 说明 示例
typeid (最重要) 指定要调用的栏目ID,多个ID用逗号隔开,如 typeid='1,3',如果为空,则从所有栏目中调用。 typeid='2' (调用栏目ID为2下的所有文章)
row (最重要) 调用文章的数量。 row='10' (调用10篇文章)
col 每行显示几条,通常配合 row 使用,用于生成表格式的列表。 col='2' (每行显示2条)
infolen 简介长度,单位是字节。 infolen='120' (简介最多显示60个汉字)
imgwidth 缩略图宽度。 imgwidth='200'
imgheight 缩略图高度。 imgheight='150'
orderby (最重要) 文章排序方式,常用值:id(默认,按ID降序), hot(按点击量降序), pubdate(按发布时间降序), sortrank(按文章排序级别降序), rand(随机)。 orderby='hot' (按点击量从高到低)
flag (非常重要) 特殊文章标识,用于调用特定状态的文章,多个标识用逗号隔开。 flag='h' (调用头条文章) flag='c' (调用推荐文章) flag='h,p' (调用头条和推荐文章)
limit 限制起始位置和数量,格式为 起始位置,数量 limit='0,5' (从第0条开始,调用5条) limit='5,10' (从第5条开始,调用10条)
keyword 按关键词调用,支持多个关键词,用逗号隔开。 keyword='织梦,DedeCMS'
channelid 指定模型ID,默认为1(文章模型)。 channelid='1' (文章) channelid='20' (如果你的产品模型ID是20)
subday 调用多少天内的文章。 subday='7' (调用最近7天内发布的文章)
att 调用带有“附件”属性的文章。 att='1' (调用有附件的文章)
noflag 排除带有特定标识的文章。 noflag='h' (调用除了头条以外的所有文章)
idlist 调用指定ID的文章,多个ID用逗号隔开,这会覆盖 typeidorderby idlist='10,25,30' (只调用ID为10,25,30的这三篇文章)

底层字段(循环体内的变量)

这些字段用来在循环中显示文章的具体信息,通过 [field:fieldname/] 来调用。

字段名 说明 示例
[field:title/] <a href="[field:arcurl/]">[field:title/]</a>
[field:arcurl/] 文章链接 <a href="[field:arcurl/]">详情</a>
[field:info/] 自动截取) [field:info/]
[field:litpic/] 缩略图地址 <img src="[field:litpic/]" alt="[field:title/]">
[field:pubdate/] 发布时间(时间戳格式) [field:pubdate function="MyDate('Y-m-d H:i',@me)"/]
[field:click/] 点击次数 [field:click]
[field:writer/] 作者 [field:writer]
[field:source/] 来源 [field:source]
[field:postnum/] 评论数 [field:postnum] 条评论
[field:typeid/] 所属栏目ID
[field:typelink/] 所属栏目链接 [field:typelink/]
[field:textlink/] <a> 标签形式的标题链接 [field:textlink/]
[field:image/] <img> 标签形式的缩略图 [field:image/]
[field:namerule/] 文章命名规则
[field:filename/] 文件名(不含路径)

常用技巧与高级用法

时间格式化

pubdate 默认输出的是时间戳,我们需要用 function 来格式化它。

{dede:arclist row='5'}
    <li>
        <span>[field:pubdate function="MyDate('m-d',@me)"/]</span>
        <a href="[field:arcurl/]" title="[field:title/]">[field:title function="cn_substr(@me,30)"/]</a>
    </li>
{/dede:arclist}
  • MyDate('Y-m-d', @me)Y-m-d 是你想要的格式,@me 代表当前字段的值(即时间戳)。
  • cn_substr(@me, 30):截取字符串,30 是字节数。

调用子栏目文章

typeid 默认只调用指定栏目本身的文章,如果需要同时调用其所有子栏目的文章,需要添加 son 属性。

织梦dede arclist
(图片来源网络,侵删)
{dede:arclist typeid='1' row='10' son='yes'}
    <a href="[field:arcurl/]">[field:title/]</a>
{/dede:arclist}
  • typeid='1':指定栏目ID为1的栏目。
  • son='yes':同时调用栏目ID为1的所有一级子栏目的文章。

调用特定标识(如“头条”、“推荐”、“幻灯”)

这是 flag 属性的经典用法,在后台发布文章时,你可以设置文章的“属性”(如头条、推荐等)。

<!-- 调用所有头条文章 -->
{dede:arclist flag='h' row='5'}
    <a href="[field:arcurl/]" class="headline">[field:title/]</a>
{/dede:arclist}
<!-- 调用所有推荐和头条文章 -->
{dede:arclist flag='h,c' row='8'}
    <a href="[field:arcurl/]">[field:title/]</a>
{/dede:arclist}
  • h: 头条
  • c: 推荐
  • p: 图片
  • f: 幻灯
  • s: 滚动

循环输出带样式的列表(例如隔行变色)

可以使用 @me 变量和 str_replace 函数来实现。

{dede:arclist row='10' titlelen='40' orderby='pubdate'}
    [field:global name=autoindex runphp="yes"]
        if ((@me % 2) == 0) {
            @me = "<li class='even'>";
        } else {
            @me = "<li class='odd'>";
        }
    [/field:global]
        <a href="[field:arcurl/]">[field:title/]</a>
        <span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
    </li>
{/dede:arclist}
  • [field:global name=autoindex/]:获取当前循环的序号(从1开始)。
  • runphp="yes":允许在全局标签内运行PHP代码。
  • if ((@me % 2) == 0):判断序号是否能被2整除,从而实现隔行变色。

调用自定义字段

如果你的文章模型有添加自定义字段(video),可以这样调用:

{dede:arclist row='5'}
    <a href="[field:arcurl/]">[field:title/]</a>
    <!-- 假设自定义字段名为video,类型是文本 -->
    视频链接:[field:video/]
    <!-- 假设自定义字段名为price,类型是数字 -->
    价格:[field:price/] 元
    <!-- 如果是编辑器类型的字段,用 function='html2text' 去除HTML标签 -->
    详细描述:[field:mydescription function='html2text(@me)'/]
{/dede:arclist}

综合实例

场景: 在首页调用“产品中心”栏目(假设ID为3)下的8个产品,按点击量排序,显示产品图片、标题和简介,标题30字节,简介100字节。

织梦dede arclist
(图片来源网络,侵删)
<div class="product-list">
    <h2>热门产品</h2>
    <ul>
        {dede:arclist typeid='3' row='8' orderby='hot' titlelen='30' infolen='100' imgwidth='150' imgheight='150'}
        <li>
            <a href="[field:arcurl/]" title="[field:title/]">
                <img src="[field:litpic/]" alt="[field:title/]" width="150" height="150">
                <h3>[field:title/]</h3>
                <p>[field:info/]</p>
            </a>
        </li>
        {/dede:arclist}
    </ul>
</div>

{dede:arclist} 是织梦CMS的基石,熟练掌握它的属性和底层字段,你就能构建出绝大多数网站的前端展示效果,核心在于:

  1. 明确需求:要调哪个栏目(typeid)?调多少条(row)?怎么排序(orderby)?
  2. 选择属性:根据需求组合使用各种属性,特别是 flaglimitson 等。
  3. 善用字段:在循环体内用 [field:xxx/] 展示你需要的文章信息。
  4. 灵活运用:结合 functionglobal 标签实现更复杂的功能,如时间格式化、隔行变色等。
-- 展开阅读全文 --
头像
织梦list noflag有何特殊用途?
« 上一篇 2025-12-23
织梦cms thinkphp
下一篇 » 2025-12-23

相关文章

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

目录[+]