dede标签如何正确使用?

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

什么是 DedeCMS 标签?

你可以把 DedeCMS 标签理解为一种“模板指令”“占位符”,当网站页面被访问时,DedeCMS 的解析引擎会扫描模板文件(.htm),找到这些标签,然后用数据库中的实际数据替换掉它们,最终生成一个完整的 HTML 页面发送给用户。

dede标签使用方法
(图片来源网络,侵删)

核心思想: 模板文件 + 标签 + 数据库 = 动态网页。


标签的基本语法

DedeCMS 的标签通常由 {dede:标签名 属性='值'}{/dede:标签名} 组成,{/dede:标签名} 是结束标签,对于单标签(如 field)则不需要。

通用格式:

{dede:标签名 属性1='值1' 属性2='值2'}
    // 这里是循环体或要显示的内容
{/dede:标签名}

示例:

dede标签使用方法
(图片来源网络,侵删)
{dede:arclist typeid='1' titlelen='30'}
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
    </li>
{/dede:arclist}

最核心的几类标签

DedeCMS 的标签非常多,但绝大多数网站开发都离不开以下几类,我们逐一进行详细讲解。

内容列表类标签

这类标签用于在首页、列表页等位置调用文章、图集等内容的列表。

{dede:arclist} - 文章列表标签,使用频率最高的标签之一。

常用属性:

属性名 作用 示例
typeid 指定栏目ID,调用该栏目下的文章,多个ID用逗号隔开。 typeid='1,2,3'
row 调用文章的数量。 row='10' (调用10篇文章)
infolen 内容简介长度。 infolen='100'
orderby 排序方式,常用值:pubdate(发布时间), hot(点击量), id(文章ID)。 orderby='hot'
orderway 排序方式。desc(降序), asc(升序)。 orderway='desc'
channelid 指定模型ID。1=文章, 2=图集。 channelid='1'
limit 限制起始位置和数量,格式为 起始位置,数量 limit='0,5' (从第0篇开始,取5篇)

{dede:arclist} 内部常用子标签(在循环体内使用):

子标签 作用
[field:title/]
[field:arcurl/] 文章链接(非常重要!)
[field:pubdate function='strftime("%Y-%m-%d",@me)'/] 发布时间,function用于格式化时间
[field:click/] 点击量
[field:litpic/] 文章缩略图
[field:description/] 文章摘要
[field:id/] 文章ID

完整实例:

<!-- 调用ID为1的栏目下的5篇最新文章,标题长度限制为20个汉字 -->
{dede:arclist typeid='1' row='5' titlelen='20' orderby='pubdate' orderway='desc'}
    <div class="news-item">
        <h3><a href="[field:arcurl/]">[field:title/]</a></h3>
        <p class="info">发布时间:[field:pubdate function='strftime("%Y-%m-%d",@me)'/] | 点击:[field:click/]</p>
        <p class="summary">[field:description function='cn_substr(@me,100)'/]...</p>
    </div>
{/dede:arclist}

内容详情页类标签

这类标签只在文章详情页(article_article.htm)中使用,用于显示当前文章的详细信息。

{dede:field} - 字段标签,用于调用文章的单个字段。

常用属性:

属性名 作用
name 指定要调用的字段名。

DedeCMS 常用文章字段:

| 字段名 | 作用 | | :--- | :--- | | 文章标题 | | pubdate | 发布时间 | | click | 点击量 | | source | 来源 | | writer | 作者 | | body | 文章正文内容 | | description | | | litpic | 缩略图 |

完整实例(在 article_article.htm 中):

<h1>{dede:field.title/}</h1>
<div class="article-info">
    发布时间:{dede:field.pubdate function='strftime("%Y-%m-%d %H:%M:%S",@me)'/} &nbsp;&nbsp;
    来源:{dede:field.source/} &nbsp;&nbsp;
    作者:{dede:field.writer/} &nbsp;&nbsp;
    点击:{dede:field.click/}
</div>
<div class="article-content">
    {dede:field.body/}
</div>

栏目导航类标签

这类标签用于生成网站的栏目菜单。

{dede:channel} - 栏目列表标签

常用属性:

属性名 作用
typeid 指定父栏目ID,用于调用其子栏目。typeid='0' 表示调用顶级栏目。
row 调用栏目数量。
type 栏目类型。son 表示下级栏目,self 表示同级栏目。

{dede:channel} 内部常用子标签:

子标签 作用
[field:typename/] 栏目名称
[field:typelink/] 栏目链接

完整实例:

<!-- 调用所有顶级栏目 -->
{dede:channel type='son' typeid='0'}
    <li><a href="[field:typelink/]">[field:typename/]</a></li>
{/dede:channel}

分页类标签

这类标签用于生成列表页的分页导航。

{dede:pagelist} - 分页列表标签

常用属性:

属性名 作用
listsize 显示的页码数量。
listitem 显示的分页项目。info(总数), index(首页), pre(上一页), pageno(页码), next(下一页), end(尾页)。

完整实例:

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

标签的进阶用法

掌握了基础用法后,一些进阶技巧能让你更灵活地控制输出。

if 条件判断标签

用于根据条件显示不同的内容。

语法:

{dede:if 条件表达式}
    // 条件为真时显示的内容
    <span>这是满足条件的内容</span>
{else if 条件表达式}
    // 或者另一个条件为真时显示的内容
    <span>这是满足另一个条件的内容</span>
{else}
    // 所有条件都不满足时显示的内容
    <span>这是默认内容</span>
{/dede:if}

常用判断:

  • global.cfg_webname == '我的网站'
  • field:typeid == '1' (判断当前栏目ID)
  • field:click > 1000 (判断点击量)

实例:

{dede:if field:typeid == '1'}
    <p>您正在查看的是“公司新闻”栏目。</p>
{else if field:typeid == '2'}
    <p>您正在查看的是“产品中心”栏目。</p>
{else}
    <p>欢迎访问本站!</p>
{/dede:if}

function 函数调用

这是最强大的功能之一,用于对标签的值进行处理,如截取字符串、日期格式化等。

语法: [field:字段名 function='处理函数(@me)']

常用函数:

函数 作用 示例
cn_substr(string, length) 截取中文字符串,防止乱码。 [field:description function='cn_substr(@me,100)'/]
strftime(format, @me) 格式化时间戳。 [field:pubdate function='strftime("%Y-%m-%d",@me)'/]
str_replace(find, replace, @me) 字符串替换。 [field:title function='str_replace("Dede","织梦",@me)'/]
html2text(@me) 将 HTML 标签转换为纯文本。 [field:body function='html2text(@me)'/]

实例:

<!-- 调用标题,如果标题超过20个字符,则截断并加上省略号 -->
{dede:arclist}
    <h3>
        [field:title function='(strlen(@me)>40 ? cn_substr(@me,40)."..." : @me)'/]
    </h3>
{/dede:arclist}

自定义宏标签

如果你有一段常用的代码,不想每次都重复写,可以把它定义成一个“宏”。

步骤:

  1. 进入后台 -> 系统 -> 系统基本参数 -> 核心设置
  2. 找到“自定义宏标签”输入框。
  3. 输入你的宏定义,格式为:宏名=宏内容myLink=<a href="http://www.example.com">我的网站</a>
  4. 保存。

使用方法: 在模板中直接调用 {dede:myLink/} 即可。


常见问题与调试技巧

  1. 标签不生效,显示为 {dede:arclist /}

    • 原因: 模板文件没有被 DedeCMS 正确解析。
    • 解决方法:
      • 确保文件是 .htm 后缀。
      • 确保文件位于模板目录下。
      • 在后台的“模板管理”中,检查并更新对应的模板文件。
      • 清除网站缓存(后台 -> 系统 -> 站点清理 -> 清除所有缓存)。
  2. 如何找到字段名或标签名?

    • 字段名: 进入后台 -> 内容管理 -> ,点击“高级内容模型”,可以看到所有可用的字段。
    • 标签名/属性: 查阅 DedeCMS 官方文档,或在网上搜索“DedeCMS 标签大全”,DedeCMS 自带的 templets 目录下的模板文件是最好的学习资料。
  3. 如何调用特定栏目(如“关于我们”)下的文章?

    • 先在后台找到“关于我们”栏目的 ID。
    • arclist 标签中使用 typeid='这个ID' 属性。

DedeCMS 标签学习路径建议:

  1. 先会用: 掌握 arclistfieldchannel 这三个最核心的标签,能做出一个简单的首页和列表页。
  2. 再理解: 学习 function 函数,学会对数据进行处理,让页面显示更美观。
  3. 后精通: 学习 if 条件判断和自定义宏,实现更复杂的逻辑和代码复用。

多看、多练、多模仿官方模板,是掌握 DedeCMS 标签最快的方法,希望这份详细的教程对你有帮助!

-- 展开阅读全文 --
头像
织梦顶踩功能,互动数据如何影响内容生态?
« 上一篇 今天
dede表格隔行换色如何实现?
下一篇 » 今天
取消
微信二维码
支付宝二维码

目录[+]