dede栏目单独页标签有哪些用法?

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

栏目单独页

在 DedeCMS 中,当你创建一个栏目时,可以为其选择一种“列表类型”:

dede栏目单独页标签
(图片来源网络,侵删)
  • 普通栏目:其列表页就是标准的栏目单独页,显示该栏目下的文章列表。
  • 封面栏目:其列表页更像一个单页,可以用来展示栏目介绍、图片等静态内容,不显示文章列表。
  • 外部链接:点击直接跳转到指定的外部URL。

我们通常所说的“栏目单独页标签”,主要指的就是普通栏目列表页所使用的模板文件 list_article.htm 中的标签。


最核心的列表循环标签

这是栏目页的灵魂,用于循环输出该栏目下的所有文章(或文档)。

{dede:arclist}
    <!-- 循环体内的HTML和标签 -->
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
        <span>[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
    </li>
{/dede:arclist}

标签解析:

  • {dede:arclist}{/dede:arclist}:这是循环的开始和结束标签。
  • [field:字段名/]:这是在循环内部获取当前文章(循环项)特定信息的标签。
    • [field:title/]
    • [field:arcurl/]:文章的完整链接地址。
    • [field:pubdate/]:文章的发布时间(默认是时间戳格式)。
    • [field:description/]
    • [field:litpic/]:文章的缩略图。
    • [field:click/]:文章的点击量。
    • [field:source/]:文章来源。
    • [field:writer/]:文章作者。

{dede:arclist} 常用属性:

dede栏目单独页标签
(图片来源网络,侵删)
  • typeid: 最重要的属性,指定要获取哪个栏目下的文章,如果留空,默认获取当前栏目(在列表页模板中,通常不需要填写,它会自动识别)。
  • row: 显示文章的数量,row='10' 表示显示10篇文章,len 标题长度,例如titlelen='30'` 表示标题最多显示30个字符。
  • infolen: 摘要长度,infolen='100' 表示摘要最多显示100个字符。
  • orderby: 排序方式,常用值有:
    • sortrank (默认):按文章排序级别(后台设置)排序。
    • pubdate:按发布时间排序。
    • click:按点击量排序。
  • orderway: 排序方向,desc (降序,默认) 或 asc (升序)。
  • channelid: 频道ID,默认为1(文章模型),如果使用了其他模型,需要指定。

示例:获取当前栏目下10篇按发布时间倒序排列的文章,标题显示20个字符。

{dede:arclist row='10' titlelen='20' 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}

分页标签

当栏目下的文章数量超过 arclistrow 值时,就需要分页。

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

标签解析:

  • {dede:pagelist}:分页功能标签。
  • listsize: 显示的页码按钮数量,listsize='4' 会显示 ... 2 3 4 5 6 ... 这样的样式。
  • listitem: 定义分页条显示哪些元素,常用的有:
    • index: 首页
    • pre: 上一页
    • next: 下一页
    • end: 末页
    • option: 下拉跳转页框
    • option (小写) 是一个更简洁的下拉框。

栏目本身信息标签

这些标签用于获取当前栏目页本身的信息,通常放在页面顶部,用于显示栏目名称、描述等。

dede栏目单独页标签
(图片来源网络,侵删)
<h1>{dede:field.typename/}</h1>
<p>{dede:field.description/}</p>

常用标签:

  • {dede:field.seotitle/}:栏目SEO标题。
  • {dede:field.typename/}:栏目名称。
  • {dede:field.description/}:栏目描述。
  • {dede:field.keyword/}:栏目关键词。

完整示例:一个典型的栏目列表页 list_article.htm

下面是一个完整的、常见的栏目列表页模板代码,包含了上述所有核心标签。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">{dede:field.seotitle/}_{dede:global.cfg_webname/}</title>
    <meta name="keywords" content="{dede:field.keyword/}" />
    <meta name="description" content="{dede:field.description/}" />
</head>
<body>
    <div class="main">
        <!-- 1. 栏目名称和描述 -->
        <h1>{dede:field.typename/}</h1>
        <div class="description">{dede:field.description/}</div>
        <!-- 2. 文章列表 -->
        <ul class="article_list">
            {dede:arclist row='20' titlelen='40' orderby='pubdate' orderway='desc'}
            <li>
                <!-- 如果有缩略图则显示缩略图,否则显示默认图或文字 -->
                [field:litpic runphp='yes']
                    if(@me=='') @me = '<img src="/images/default.jpg" />';
                    else @me = '<img src="'.@me.'" />';
                [/field:litpic]
                <div class="info">
                    <a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
                    <p>[field:description function="cn_substr(@me, 150)"]...</p>
                    <span class="meta">发布时间:[field:pubdate function="MyDate('Y-m-d H:i', @me)"] &nbsp; 点击:[field:click/]</span>
                </div>
            </li>
            {/dede:arclist}
        </ul>
        <!-- 3. 分页 -->
        <div class="dede_pages">
            <ul class="pagelist">
                {dede:pagelist listsize='4' listitem='index,pre,next,end,option'}
                {/dede:pagelist}
            </ul>
        </div>
    </div>
</body>
</html>

进阶与技巧

  1. 调用子栏目的文章 如果你想在栏目页同时显示当前栏目的文章和其子栏目的文章,可以在 arclist 标签中使用 sonlevel 属性。

    {dede:arclist typeid='当前栏目ID' row='10' sonlevel='1'}
        <!-- 循环内容 -->
    {/dede:arclist}
    • typeid 必须填写当前栏目的ID(可以在后台栏目管理中查看)。
    • sonlevel='1' 表示调用子栏目(一级)下的文章。
  2. 自定义函数 在示例中,我们使用了 function="MyDate('Y-m-d', @me)"function="cn_substr(@me, 150)"

    • MyDate: DedeCMS 内置的日期格式化函数。
    • cn_substr: DedeCMS 内置的中文截取函数,防止英文截断产生乱码。
    • runphp='yes': 允许在标签内执行PHP代码,非常灵活。
  3. 栏目封面页的特殊性 如果你的栏目类型是“封面栏目”,list_article.htm 模板中的 {dede:arclist} 是无效的,封面页的内容应该像普通页面一样,直接使用静态HTML和 {dede:field.xxx/} 来调用栏目的基本信息。

希望这份详细的解析能帮助你完全掌握 DedeCMS 栏目单独页的标签使用!

-- 展开阅读全文 --
头像
织梦后台如何修改联系方式?
« 上一篇 今天
没有更多啦!
下一篇 »

相关文章

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

目录[+]