织梦cms tag标签

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

什么是织梦标签?

织梦标签是一种专用于织梦CMS系统的模板指令,它类似于WordPress的短代码,但功能更强大、更灵活。

织梦cms tag标签
(图片来源网络,侵删)
  • 作用:在模板文件(.htm)中,通过调用标签来获取并显示数据库中的内容,如文章列表、栏目、图集、软件等。
  • 格式:通常由 {dede:标签名 属性='值'} 开头,由 {/dede:标签名} 对于单标签,则直接以 /{dede:标签名}
  • 优势:将页面逻辑与内容分离,前台设计人员只需关注HTML和标签,无需关心后端PHP代码,大大降低了网站开发的难度和维护成本。

核心标签解析

织梦标签非常多,但掌握了以下几类核心标签,就能构建出绝大多数网站页面。

全局通用标签

这些标签可以在任何页面使用,用于获取网站的基本信息。

  • {dede:global}:调用网站全局变量。
    • 示例
      • {dede:global.cfg_webname/}:调用网站名称。
      • {dede:global.cfg_weburl/}:调用网站首页URL。
      • {dede:global.cfg_powerby/}:调用版权信息。
  • {dede:include}:包含其他文件,常用于引入页头、页脚、侧边栏等。
    • 示例
      • {dede:include filename='head.htm'/}:引入根目录下的 head.htm 文件。
      • {dede:include file='templets/default/foot.htm'/}:引入指定路径的文件。

文章列表类标签

这是最常用的标签组,用于在首页、列表页、栏目页等展示文章。

  • 主标签:{dede:arclist}

    • 作用:获取一个文章列表。

    • 常用属性

      • typeid: 必选,指定栏目ID,获取该栏目下的文章,多个ID用逗号隔开,如 '1,2,3''top' 表示顶级栏目。
      • row: 调用文章数量,默认为10条。
      • titlelen: 标题长度,默认为30字节(一个汉字2字节)。
      • infolen: 简介(长度。
      • orderby: 排序方式,常用值:pubdate (发布时间)、id (文章ID)、click (点击量)、hot (热度),默认为 pubdate
      • orderway: 排序方向。desc (降序)、asc (升序),默认为 desc
      • channelid: 指定频道ID,如 1 代表文章,2 代表图集。
      • limit: 起始位置,获取数量,如 limit='0,5' 表示从第0条开始,获取5条。
    • 底层模板变量:在 {dede:arclist}{/dede:arclist} 之间使用的变量。

      • [field:title]
      • [field:arcurl]:文章链接。
      • [field:pubdate function='strftime("%Y-%m-%d",@me)'/]:发布时间,function 用于格式化日期。
      • [field:description]
      • [field:click]:文章点击量。
      • [field:image]:文章第一张图片(如果有)。
      • [field:litpic]:文章缩略图。
    • 完整示例(首页头条文章)

      {dede:arclist typeid='1' row='5' titlelen='40' orderby='click' orderway='desc'}
      <li>
          <a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
          <span>[field:pubdate function='strftime("%m-%d",@me)'/]</span>
      </li>
      {/dede:arclist}

页标签

这些标签只在文章内容页(article_article.htm)中使用。

  • {dede:field}:调用文章的某个字段。

    • 常用属性
      • title: 文章标题。
      • pubdate: 发布时间。
      • source: 来源。
      • writer: 作者。
      • click: 点击量。
      • description:
      • body: 文章正文内容。
      • typename: 当前栏目名称。
    • 示例
      • <h1>{dede:field.title/}</h1>
      • <p>发布时间:{dede:field.pubdate function='strftime("%Y-%m-%d %H:%M:%S",@me)'/}</p>
      • [field:body/] (注意:内容页直接用 [field:body/] 而不是 {dede:field.body/})
  • {dede:field name='position'}:调用当前位置(面包屑导航)。

    • 示例首页 > 技术分享 > {dede:field name='title'/}
  • {dede:prenext get='pre'/}{dede:prenext get='next'/}:调用上一篇/下一篇文章。

    • get='pre':上一篇。
    • get='next':下一篇。
  • {dede:likearticle}:调用相关文章。

    • 常用属性row(数量)、typeid(指定栏目)。
    • 底层变量:同 arclist

栏目导航标签

用于生成网站的栏目菜单。

  • 主标签:{dede:channel}
    • 作用:获取栏目列表。
    • 常用属性
      • typeid: 指定从哪个栏目开始获取,默认为顶级栏目,'0' 也是顶级栏目。
      • row: 调用栏目数量。
      • type: 栏目类型,默认为 son (下级栏目),self (同级栏目)。
      • currentstyle: 当前栏目样式,非常有用!
    • 底层模板变量
      • [field:typename]:栏目名称。
      • [field:typelink]:栏目链接。
    • currentstyle 属性示例
      {dede:channel type='top' currentstyle="<li class='on'><a href='~typelink~'>~typename~</a></li>"}
          <li><a href="[field:typelink/]">[field:typename/]</a></li>
      {/dede:channel}

      这个意思是:如果是当前栏目,就应用 currentstyle 里的样式(~typelink~~typename~ 会自动替换为对应的值),否则应用默认的 <li> 样式,这可以轻松实现高亮当前菜单项。


高级标签与技巧

自定义循环({dede:loop}

{dede:loop} 是一个万能标签,可以执行任何SQL语句,非常灵活。

  • 作用:执行SQL并循环输出结果。
  • 属性
    • sql: 要执行的SQL语句。
    • row: 返回记录数。
  • 底层变量:通过 [field:字段名] 调用。
  • 示例(调用友情链接)
    {dede:loop table='dede_flink' type='my' row='10'}
        <a href="[field:url/]" target="_blank">[field:webname/]</a>
    {/dede:loop}

    注意:type='my' 是调用自己添加的友情链接,type='image' 是调用图片链接。

条件判断({dede:if}

在模板中进行逻辑判断,让页面内容更智能。

  • 语法{dede:if 条件}...[else]...{/dede:if}
  • 示例(判断是否有缩略图)
    {dede:if field.litpic != ''}
        <img src="[field:litpic/]" alt="[field:title/]" />
    {else}
        <img src="/images/default.jpg" alt="默认图片" />
    {/dede:if}

代码片段({dede:myad} / {dede:myphp}

  • 广告调用 {dede:myad}

    • 作用:调用后台广告管理器中的广告。
    • 示例{dede:myad name='topbanner'/}name 对应后台广告标识符。
  • PHP代码执行 {dede:myphp}

    • 作用:在模板中直接执行PHP代码(危险操作,非必要不使用)。
    • 示例
      {dede:myphp}
          $now = date('Y-m-d H:i:s');
          echo "现在时间是:".$now;
      {/dede:myphp}

标签嵌套

织梦标签支持嵌套,可以实现更复杂的功能。

  • 示例(在每个栏目下调用其子栏目的文章)
    {dede:channel type='son' typeid='top'}
        <!-- [field:typename/] 是当前循环的子栏目名称 -->
        <h2>[field:typename/]</h2>
        <ul>
            {dede:arclist row='5' typeid='[field:id]'} <!-- 注意这里的typeid是动态变化的 -->
                <li><a href="[field:arcurl/]">[field:title/]</a></li>
            {/dede:arclist}
        </ul>
    {/dede:channel}

标签系统常见问题与解决方案

问题:标签不生效,页面显示为 {dede:xxx} 原样字符。

  • 原因:模板文件没有被织梦解析。
  • 解决方案
    1. 确保模板文件是 .htm 后缀。
    2. 进入后台 -> 模板 -> 默认模板管理 -> 选择对应页面 -> 更新HTML,这是最常用的方法。
    3. 检查标签拼写是否错误,如 {dede:arccat} 是错误的,应为 {dede:arclist}

问题:调用出的链接是动态的 plus/view.php?aid=123,而不是静态的 /html/123.html

  • 原因:网站开启了伪静态,但模板更新时没有正确生成静态文件。
  • 解决方案
    1. 进入后台 -> 系统 -> 系统基本参数 -> 核心设置,确认“是否使用伪静态”是“是”。
    2. 进入后台 -> 生成 -> HTML更新,选择“一键更新网站”,或者选择“更新栏目页/列表页/内容页”进行更新。

问题:如何修改或自定义标签?

  • 修改现有标签:织梦标签的核心PHP文件位于 /include/taglib/ 目录下。arclist.lib.php 文件就对应了 {dede:arclist} 标签的逻辑。(此操作需要PHP编程基础,不推荐新手随意修改,容易导致系统异常)
  • 创建自定义标签:可以通过编写PHP函数,然后在 /include/common.func.php 文件中添加,最后在模板中通过 {dede:mytag} 调用,这是一个高级技巧,用于实现系统没有的特定功能。

织梦CMS的标签系统是一个强大而灵活的工具,掌握它的关键在于:

  1. 熟悉核心标签{dede:global}, {dede:include}, {dede:arclist}, {dede:field}, {dede:channel} 是构建网站的基础。
  2. 理解属性和底层变量:属性用来控制标签行为,底层变量用来显示内容。
  3. 勤于练习和查阅官方文档:遇到不认识的标签,最好的方法是查阅织梦官方提供的《标签手册》。
  4. 学会“更新HTML”:90%的标签不显示问题都可以通过“更新HTML”解决。

希望这份详细的指南能帮助你从入门到精通织梦CMS的标签系统!

-- 展开阅读全文 --
头像
如何用C语言求1到20阶乘的和?
« 上一篇 今天
dede5.7采集内容分页如何实现?
下一篇 » 今天

相关文章

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