织梦首页如何调用栏目描述?

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

使用 {dede:channel} 标签(最推荐、最灵活)

这是最常用也是最灵活的方法。{dede:channel} 标签主要用于栏目列表,但它自带了描述字段,可以直接调用。

基础调用:调用当前顶级栏目的描述

在首页模板(通常是 index.htm)中,如果你想调用当前顶级栏目(公司简介”、“产品中心”等)的描述,可以直接使用以下标签:

{dede:channel type='top' row='10'}
    <a href="[field:typelink/]">[field:typename/]</a>
    <p>描述:[field:description/]</p>
{/dede:channel}

标签解析:

  • {dede:channel type='top' row='10'}:
    • type='top': 表示只调用顶级栏目,这是最关键的部分,因为首页通常只需要显示一级栏目。
    • row='10': 表示调用10个栏目,你可以根据需要修改这个数字。
  • [field:typelink/]: 调用栏目的链接地址。
  • [field:typename/]: 调用栏目的名称。
  • [field:description/]: 这就是调用栏目描述的核心标签

进阶调用:调用指定ID的栏目描述

如果你只想在首页的某个特定位置(比如一个单独的模块)显示某个特定栏目(例如ID为1的“公司简介”)的描述,可以这样写:

{dede:channel typeid='1'}
    <h2>[field:typename/]</h2>
    <div class="description">
        [field:description/]
    </div>
{/dede:channel}

标签解析:

  • typeid='1': 直接指定要调用的栏目ID,你可以在后台“栏目管理”中查看每个栏目的ID。

高级调用:为每个栏目调用其子栏目的描述

如果你想在显示顶级栏目的同时,也显示其下第一个子栏目的描述,可以结合 {dede:channelartlist}{dede:channel} 标签实现。

{dede:channelartlist typeid='top' row='5'}
    <h2><a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a></h2>
    <!-- 调用当前顶级栏目的描述 -->
    <p class="top-desc">[field:description function='cn_substr(@me, 100)'/]</p>
    <div class="sub-channels">
        {dede:channel type='son' noself='yes'}
            <a href="[field:typelink/]">[field:typename/]</a>
        {/dede:channel}
    </div>
    <!-- 调用第一个子栏目的描述作为示例 -->
    {dede:channel type='son' row='1' noself='yes'}
        <p class="son-desc">子栏目描述:[field:description/]</p>
    {/dede:channel}
{/dede:channelartlist}

标签解析:

  • {dede:channelartlist}: 用于循环输出顶级栏目及其内容。
  • [field:description function='cn_substr(@me, 100)'/]: 这里使用了 function 对描述进行截取,cn_substr(@me, 100) 表示只显示前100个字符,避免描述过长影响布局。

使用 {dede:sql} 标签(直接查询数据库)

如果你对SQL语句有一定了解,或者 {dede:channel} 标签无法满足你的特殊需求,可以直接使用 {dede:sql} 标签从 dede_arctype 表(栏目表)中查询数据。

{dede:sql sql="SELECT description,typename,typelink FROM dede_arctype WHERE id=1"}
    <h3>[field:typename/]</h3>
    <p>[field:description/]</p>
    <a href="[field:typelink/]">查看更多</a>
{/dede:sql}

标签解析:

  • sql="...": 这里写你的SQL查询语句。
    • SELECT description,typename,typelink: 查询这三个字段。
    • FROM dede_arctype: 从dede_arctype表(织梦的栏目表)中查询。
    • WHERE id=1: 查询ID为1的栏目。
  • [field:字段名/]: 输出查询结果中对应的字段值。

注意: 这种方法比较直接,但硬编码了表前缀 dede_,如果你的网站修改了默认表前缀,这个标签就会失效,除非有特殊需求,否则优先推荐使用方法一。


使用自由列表(Free List)

这种方法更适合有后台编辑经验的用户,它将数据和前端模板分离,管理起来更方便。

  1. 在后台创建一个自由列表

    • 登录织梦后台,进入【核心】 -> 【自由列表管理】。
    • 点击“增加自由列表”,填写列表名称(如“首页栏目描述”)。
    • 在“列表内容模板”中,你可以编写一个简单的模板来输出你想要的数据,
      [field:typename/] - [field:description/]
    • 在“列表内容查询SQL”中,写入你的查询语句,
      SELECT id, typename, description FROM `#@__arctype` WHERE reid=0 ORDER BY id

      这里的 #@__ 是织梦的表前缀占位符,会自动替换为你网站的实际表前缀。

    • 保存并生成这个自由列表。
  2. 在首页模板中调用

    • 在首页模板 index.htm 的你需要显示的位置,使用以下标签来调用你刚刚创建的自由列表:
      {dede:freelist listid='1' titlelen='100'}
          [field:textlink/]
      {/dede:freelist}
      • listid='1': 是你创建的自由列表的ID,可以在自由列表管理页面看到。
      • [field:textlink/]: 会调用你在自由列表模板中定义的内容。

常见问题与注意事项

  1. 描述为空怎么办?

    • 检查后台:首先去后台“[栏目管理]” -> “[选择一个栏目]” -> “[修改]”,确认“栏目描述”字段是否已经填写。
    • 检查标签:确保你的标签写法正确,特别是 typeidtype 参数。
    • 字符截取:如果使用了 function='cn_substr()',请确保截取的长度大于0。
  2. 如何控制描述的显示长度?

    • 使用 function 函数进行截取,如上文示例所示:
      [field:description function='cn_substr(@me, 100)'/]

      这里的 100 就是显示的字符数(一个汉字算一个字符)。

  3. 如何调用栏目的SEO描述(description)和栏目简介(content)?

    • 织梦的栏目有两个描述相关的字段:
      • 栏目描述 (description):通常用于 <meta name="description" ...> 标签,也会在列表页调用,这是我们上面调用的字段。
      • 栏目简介 (content):在栏目内容页(如 plus/list.php?tid=1)的模板中通过 [field:content/] 调用,内容可以很长,支持HTML。
    • 如果你需要调用的是“栏目简介”content,只需将标签中的 description 改为 content 即可:
      [field:content/]
方法 优点 缺点 适用场景
{dede:channel} 最简单、最常用、织梦官方推荐、灵活、无需SQL知识 灵活性相对SQL稍差 绝大多数情况下的首选,特别是调用顶级栏目或指定ID栏目。
{dede:sql} 极其灵活,可进行复杂查询 需要SQL知识、硬编码表前缀有风险 有特殊查询需求,或{dede:channel}无法满足时。
自由列表 数据与模板分离,便于后台管理 步骤稍多,需要后台操作 网站结构复杂,需要多个页面调用相同格式的栏目数据时。

对于绝大多数用户来说,方法一 ({dede:channel}) 是最简单、最直接、也是最应该掌握的方法,希望这个详细的解答能帮到你!

-- 展开阅读全文 --
头像
织梦模板标签如何正确调用?
« 上一篇 03-21
dede图集上传302错误怎么办?
下一篇 » 03-21

相关文章

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

目录[+]