dede自定义属性如何实现跳转功能?

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

这是一个非常常见的需求,比如在首页制作一个广告位、友情链接或者一个特殊的按钮,点击后不是跳转到本站的某个栏目页,而是跳转到外部网站。

dede 自定义属性 跳转
(图片来源网络,侵删)

核心思路是: 利用 DedeCMS 的自定义属性功能,创建一个用于存放跳转链接的字段,然后在模板文件中通过判断这个字段是否存在来决定最终的 href 地址。

下面是详细的步骤,以给首页的一个广告位添加跳转功能为例。


第一步:在后台添加自定义属性

这一步的目的是为需要跳转的内容模型(广告”模型)增加一个“跳转链接”的字段。

  1. 登录 DedeCMS 后台
  2. 进入 [核心] -> 模型管理],模型列表中,找到你想要修改的模型,如果你的广告位是调用“广告”模型,就点击“广告”后面的 [修改] 按钮,如果不确定,通常首页的广告位会使用一个独立的模型,或者你可以在“单页文档模型”或“自由列表”中设置,这里我们假设它是一个独立的模型,比如叫 ad
  3. 进入模型字段管理页面后,点击 [添加新字段]
  4. 填写字段信息:
    • 字段名称: redirecturl (这是数据库里的字段名,建议用英文,不能和已有字段重复)
    • 字段别名: 跳转链接 (这是后台显示的名称,用中文方便识别)
    • 字段类型: 文本 (text)
    • 字段长度: 255 (足够存放一个 URL)
    • 字段说明: 点击后跳转到的网址,请填写完整的URL ( http://www.example.com) (后台填写此字段时的提示信息)
    • 是否为常用字段: 勾选上,这样在后台发布内容时这个字段会显示在更醒目的位置。
    • 其他选项:保持默认即可。
  5. 点击 [保存]。 模型已经有了一个名为“跳转链接”的自定义属性字段了。

第二步:在后台编辑内容并填写跳转链接

  1. 回到 DedeCMS 后台,找到你需要添加跳转功能的内容,进入 [核心] -> [广告管理] -> [广告列表],编辑一个广告条目。
  2. 在编辑页面,你会发现刚才添加的 [跳转链接] 字段已经出现在表单里了。
  3. 在“跳转链接”输入框中,填入你希望用户点击后跳转到的 完整网址https://www.baidu.com
    • 重要:必须填写完整的 URL,包括 http://https://
  4. 条目。

第三步:修改模板文件(关键步骤)

这是实现跳转逻辑的核心,你需要找到调用该内容的模板文件,并修改其 HTML 代码。

dede 自定义属性 跳转
(图片来源网络,侵删)
  1. 通过 FTP 或主机文件管理器,进入你的 DedeCMS 网站根目录下的 /templets/ 文件夹。

  2. 找到调用该内容的模板文件。

    • 如果是首页的广告,通常是 /templets/default/index.htm
    • 如果是栏目列表,可能是 /templets/default/目录名/list.htm
    • 页,可能是 /templets/default/目录名/article_article.htm
  3. 用代码编辑器(如 VS Code, Sublime Text, Notepad++)打开该模板文件。

  4. 找到调用该内容 <a> 标签的代码,它可能看起来像这样:

    <a href='{dede:field name='arcurl'/}' target="_blank">
        <img src='{dede:field name='picurl'/}' alt='{dede:field name='title'/}' />
    </a>

    或者只是一个链接:

    <a href='{dede:field name='arcurl'/}' target="_blank">{dede:field name='title'/}</a>
  5. 修改模板代码,加入跳转逻辑,我们将使用 DedeCMS 的 if 标签进行判断。

    修改后的代码示例:

    <a href="[field:redirecturl runphp='yes']
        if(@me != '') @me = @me;
        else @me = @me;
    [/field:redirecturl]" target="_blank">
        <img src='{dede:field name='picurl'/}' alt='{dede:field name='title'/}' />
    </a>

    代码解析:

    • [field:redirecturl ...]:这是调用我们第一步添加的自定义属性字段 redirecturl 的值。

    • runphp='yes':表示对这个字段的值进行 PHP 代码处理,这是关键!

    • if(@me != '')@merunphp 中代表当前字段的值,这句代码的意思是:“redirecturl 字段的值不为空(即填写了跳转链接)”。

    • @me = @me;:如果条件为真(不为空),那么最终的输出值 @me 就是我们填写的跳转链接。

    • else @me = @me;:如果条件为假(为空),那么最终的输出值 @me 就是它本身的值,也就是空。

    • 更清晰、更推荐的写法(推荐使用):

      <a href="
      [field:redirecturl runphp='yes']
          if(@me != '') {
              @me = @me; // 如果有跳转链接,就使用它
          } else {
              @me = GetArcUrl(@me); // 如果没有,就使用默认的文档链接 (arcurl)
          }
      [/field:redirecturl]
      " target="_blank">
          <img src='{dede:field name='picurl'/}' alt='{dede:field name='title'/}' />
      </a>

      注意:GetArcUrl() 是 DedeCMS 的一个函数,用于获取文档的真实链接,这种写法更严谨,既支持跳转,又在没有跳转链接时回退到默认行为。

    对于纯文本链接的修改:

    <a href="
    [field:redirecturl runphp='yes']
        if(@me != '') {
            @me = @me;
        } else {
            @me = GetArcUrl(@me);
        }
    [/field:redirecturl]
    " target="_blank">
        {dede:field.name/}
    </a>
  6. 保存修改后的模板文件,并上传到服务器覆盖原文件。


第四步:更新缓存和生成页面

  1. 回到 DedeCMS 后台。
  2. 进入 [生成] -> [一键更新网站]
  3. 建议先点击 [更新HTML] -> [更新首页],然后再更新对应的栏目页或内容页。
  4. 清理浏览器缓存,或者使用无痕模式访问你的网站,查看效果。

当你点击那个广告位或链接时:

  • 如果你在后台为它填写了“跳转链接”,它会跳转到你指定的外部网站。
  • 如果你没有填写“跳转链接”,它会像往常一样跳转到本站对应的页面。

总结与注意事项

  • 核心三要素:添加自定义属性字段 -> 在后台填写值 -> 修改模板用 runphp 判断。
  • runphp 是关键:没有 runphp='yes'if 语句是无法生效的。
  • 字段名称:在模板中调用时,[field:xxx]xxx 必须和第一步你设置的“字段名称”完全一致。
  • URL 完整性:填写跳转地址时,务必写全 http://https://
  • 模板路径:一定要修改正确的模板文件,否则看不到效果。
  • 权限问题:确保你修改模板文件的 FTP 账号有写入权限。

通过以上步骤,你就可以灵活地在 DedeCMS 中使用自定义属性来实现各种跳转需求了。

-- 展开阅读全文 --
头像
HTML5织梦手机版如何适配多终端?
« 上一篇 02-12
织梦install删除
下一篇 » 02-12

相关文章

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

目录[+]