dede首页练级如何获取?

99ANYc3cd6
预计阅读时长 12 分钟
位置: 首页 DEDE建站 正文
  1. 获取某个栏目(频道)的链接:比如获取“公司简介”栏目的链接,用于首页的导航栏。
  2. 获取某篇文章(内容页)的链接:比如获取首页推荐文章的链接,用于展示文章标题并点击跳转。

下面我将分这两种情况,为你详细讲解在 DedeCMS 中获取链接的方法,并提供最常用和最推荐的代码。

dede获取首页练级
(图片来源网络,侵删)

获取单个栏目(频道)的链接

这是最基础也是最常用的操作,通常用在网站的导航菜单中。

场景:

假设你的导航栏有一个“关于我们”的栏目,你想在首页模板中获取它的链接。

步骤:

  1. 登录后台,找到栏目ID

    • 登录你的 DedeCMS 后台。
    • 进入「核心」 -> 「频道管理」。
    • 找到你的目标栏目(关于我们”),记下它的 栏目ID(比如是 5)。
  2. 在首页模板中使用 GetTopTypeGetType 函数 DedeCMS 提供了内置的函数来获取栏目信息。

    dede获取首页练级
    (图片来源网络,侵删)
    • GetTopType 获取顶级栏目信息

      • 用途:如果你的“关于我们”是顶级栏目,或者你只想获取它所属的顶级栏目的信息,使用这个。
      • 语法{dede:field name='typeid' function="GetTopType(@me)/"}
    • GetType 获取指定栏目ID的信息

      • 用途:如果你明确知道栏目的ID,想获取该栏目的详细信息(包括链接),使用这个更直接。
      • 语法{dede:field name='typeid' function="GetType(@me)/"}
  3. 编写代码

    示例1:使用栏目ID直接获取(推荐)

    dede获取首页练级
    (图片来源网络,侵删)

    在你的首页模板文件(通常是 /templets/default/index.htm)中,导航栏的代码可以这样写:

    <a href="[field:typelink function='str_replace("{cmspath}","",@me)'/]">关于我们</a>

    代码解释

    • [field:typelink ...]:这是一个自定义字段,用来调用 GetType 函数返回的 typelink 值。
    • function='GetType(@me)/':这是核心。@me 会替换成当前字段的值,在这里我们直接传入栏目ID。GetType(5) 会返回一个包含栏目信息的数组。
    • typelink:是 GetType 函数返回的数组中的一个键,它代表了该栏目的完整链接地址(/about/)。
    • str_replace("{cmspath}","",@me):这是一个非常重要的处理步骤,DedeCMS 生成的链接有时会包含网站的绝对路径(如 http://www.yoursite.com{cmspath}/about/),{cmspath} 是一个占位符。str_replace 会把它替换掉,确保链接是相对路径,这样网站无论放在哪个域名下都能正常工作。

    示例2:在栏目循环中使用(更灵活)

    如果你正在使用 {dede:channel} 标签循环输出所有顶级栏目,那么获取链接就更简单了。

    {dede:channel type='top' row='8'}
      <li><a href="[field:typelink/]">[field:typename/]</a></li>
    {/dede:channel}

    代码解释

    • {dede:channel type='top'}:循环输出所有顶级栏目。
    • [field:typelink/]:直接调用当前栏目的链接,这个链接已经是处理好的相对路径,无需额外修改。
    • [field:typename/]:调用当前栏目的名称。

获取单篇文章(内容页)的链接

这个场景通常用在首页的文章列表、推荐位、幻灯片等位置。

场景:

首页有一个“最新文章”列表,每篇文章的标题都需要能点击跳转到对应的文章详情页。

步骤:

  1. 使用文章列表标签 {dede:arclist} arclist 是 DedeCMS 最核心、最强大的标签之一,用于调用文章列表。

  2. 在标签内使用 arcurl 字段 arclist 标签会为每篇文章生成一个包含其信息的对象,arcurl 字段就存储了该文章的链接。

  3. 编写代码

    在首页模板中,你可以这样写:

    <ul>
      {dede:arclist titlelen='30' row='5'}
        <li>
          <a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
          <span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
        </li>
      {/dede:arclist}
    </ul>

    代码解释

    • {dede:arclist titlelen='30' row='5'}:调用5篇文章,标题长度限制在30个字符。
    • [field:arcurl/]这是获取文章链接的关键,它会自动生成当前文章的链接,格式通常是 /archives/123.html
    • [field:title/]:获取文章标题。
    • [field:pubdate ...]:获取文章发布日期,并用 MyDate 函数格式化为 年-月-日 的格式。

总结与最佳实践

需求场景 推荐标签/函数 关键字段 代码示例
获取栏目链接 GetType 函数 typelink <a href="[field:typelink function='str_replace("{cmspath}","",@me)'/]">栏目名</a>
获取文章链接 arclist arcurl <a href="[field:arcurl/]">文章标题</a>

重要提示

  • 模板缓存:修改首页模板后,务必去后台「生成」->「更新主页HTML」,才能看到效果,因为 DedeCMS 默认开启了模板缓存,直接刷新页面是看不到改动的。
  • 路径问题:如果你的网站配置了“支持多站点”,或者使用了复杂的URL重写规则,链接的生成可能会有所不同,但在绝大多数标准安装中,上述方法都是最稳定和可靠的。
  • 安全考虑:从 DedeCMS 5.7 版本开始,官方推荐使用 dede 标签(如 {dede:channel})而不是旧的 loop 标签,因为前者更安全、效率更高。

希望这个详细的教程能帮助你解决在 DedeCMS 中获取链接的问题!

-- 展开阅读全文 --
头像
dede面部不居中是什么原因导致的?
« 上一篇 04-23
C51与标准C语言有何核心差异?
下一篇 » 04-23

相关文章

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

目录[+]