dede tag 标签加链接

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

核心概念

在DedeCMS中,标签的链接是通过PHP函数生成的,最核心的函数是:

dede tag 标签加链接
(图片来源网络,侵删)
  • GetTagUrl($tag):这是最常用、最标准的函数,用于获取指定标签的URL地址。
  • {dede:tag}:这是标签列表的底层模板,用于循环输出每一个标签。

我们的目标就是在 {dede:tag} 循环中,使用 GetTagUrl 函数为每个标签生成一个 <a> 链接。


修改标签列表页模板文件(最常用、最推荐)

这是最直接、最安全的方法,适用于绝大多数情况。

场景描述

你在文章列表页、文章内容页或其他地方使用了 {dede:tag} 标签来调用文章关联的标签,但你发现这些标签默认没有链接。

操作步骤

  1. 找到模板文件

    • 登录你的DedeCMS后台。
    • 进入【模板】->【默认模板管理】。
    • 找到你当前正在使用的模板目录,然后找到对应的模板文件。
    • 常见位置
      • 如果是在文章列表页(如 list_article.htm)中调用的标签,就修改 list_article.htm
      • 如果是在(如 article_article.htm)中调用的标签,就修改 article_article.htm
      • 如果是在自定义页面或其他模板中调用的,就修改那个对应的模板文件。
  2. 定位并修改标签代码

    • 在模板文件中,找到你调用标签的代码片段,它通常是这样的:

      {dede:tag row='5' getall='1'}
      <span class='tag'>[field:tag /]</span>
      {/dede:tag}
    • [field:tag /] 部分修改为带链接的格式,这里提供几种常见的修改方式:

    • 方式A:标准链接(推荐) 使用 GetTagUrl 函数,这是DedeCMS官方推荐的方式,兼容性最好。

      {dede:tag row='5' getall='1'}
      <span class='tag'><a href="[field:tagurl/]">[field:tag /]</a></span>
      {/dede:tag}

      说明[field:tagurl/]{dede:tag} 底层模板自带的字段,它会自动调用 GetTagUrl() 函数生成链接,比手动写更简洁。

    • 方式B:带样式的链接 如果你希望给链接添加CSS样式(如颜色、背景等),可以这样写:

      {dede:tag row='5' getall='1'}
      <a href='[field:tagurl/]' class="tag-link">[field:tag /]</a>
      {/dede:tag}

      然后你可以在CSS文件中定义 .tag-link 的样式。

    • 方式C:在新窗口打开 如果希望点击标签链接时在新窗口打开,可以添加 target="_blank" 属性:

      {dede:tag row='5' getall='1'}
      <a href="[field:tagurl/]" target="_blank">[field:tag /]</a>
      {/dede:tag}
  3. 更新缓存

    • 修改完模板文件后,回到后台首页。
    • 点击顶部菜单的【生成】->【更新HTML】->【更新所有HTML】。
    • 或者,至少点击【更新栏目HTML】和【更新文档HTML】,以确保修改生效。
  4. 刷新页面查看效果

    清除浏览器缓存,然后访问你的网站前台页面,查看标签是否已经成功添加了链接。


修改标签列表底层模板文件(全局生效)

如果你希望网站所有地方的标签都自动带上链接,而不用在每个模板文件里都修改一遍,可以修改标签的底层模板。

操作步骤

  1. 找到底层模板文件

    • 进入DedeCMS后台的【模板】->【标签调用】。
    • 在页面右侧找到并点击“底层模板目录”链接,进入底层模板文件夹。
    • 在该文件夹中,找到名为 taglist_default.htm 的文件,这就是标签列表的默认底层模板。
  2. 修改底层模板

    • 用记事本或Dreamweaver等工具打开 taglist_default.htm 文件。
    • 你会看到类似这样的代码:
      <li><a href='[field:link/]'>[field:tag /]</a></li>
    • 确保 [field:link/] 这个字段存在,在DedeCMS的底层模板中,[field:link/] 通常就是 GetTagUrl() 函数的输出,如果你的代码里是 [field:tag /],你需要手动把它改成 <a> 链接格式,如方法一所示。
    • 保存文件。
  3. 更新缓存

    同样,进入【生成】->【更新HTML】,执行更新操作。

优点:一劳永逸,所有调用 {dede:tag} 的地方都会生效。 缺点:不够灵活,如果你想在某个特殊地方去掉链接或修改样式,就无法通过修改模板实现了。


通过修改PHP源码(不推荐,仅适用于高级用户)

在某些情况下,你可能发现标签根本没有被 {dede:tag} 调用出来,或者调用出来是空的,这可能是因为标签没有与文章正确关联,这时你可能需要检查或修改PHP文件。

场景页 {dede:field.tags/} 调用不出来标签,或者后台的“相关标签”功能异常。

操作步骤(以修复文章标签调用为例)

  1. 找到并打开PHP文件

    • 使用FTP或文件管理器,进入你的网站根目录。
    • 找到并打开 /include/helpers/archive.helper.php 文件。
  2. 定位并修改函数

    • 在文件中搜索 function GetTags() 函数。
    • 找到类似下面的代码段:
      // ... 其他代码 ...
      $tags = '';
      $query = "SELECT tag FROM `dede_taglist` WHERE aid='$aid' ";
      $dsql->Execute('tag',$query);
      while($row = $dsql->GetArray('tag'))
      {
          $tags .= ($tags=='' ? "<a href='/tags.php?/{$row['tag']}'>".$row['tag']."</a>" : ','."<a href='/tags.php?/{$row['tag']}'>".$row['tag']."</a>");
      }
      // ... 其他代码 ...
      return $tags;
    • 关键点:确保 $tags .= ... 这一行代码中,$row['tag'] 被包裹在了 <a href='...'>...</a> 标签内。
    • 注意URL格式:上面的例子中URL是 /tags.php?/{tag},如果你的系统开启了伪静态,URL格式可能是 /tags/{tag}/,你需要根据你的网站实际情况调整链接地址。
    • 保存文件。
  3. 更新缓存

    后台【生成】->【更新HTML】。

警告:直接修改PHP文件有风险,操作前请务必备份原文件,此方法仅当你确定问题出在PHP逻辑层面时才使用。


总结与排查

如果按照方法一和方法二操作后,标签仍然没有链接,请检查以下几点:

  1. 标签是否已生成?:进入后台【标签管理】,看看你文章关联的标签是否存在,如果不存在,需要先生成标签。
  2. 标签是否与文章关联?:编辑文章,在“标签”输入框里输入标签,并用英文逗号隔开,然后更新,这是最基本的前提。
  3. URL是否正确?:点击生成的链接,看看是否能正常跳转到标签聚合页面,如果404,可能是伪静态规则问题或未生成标签页面。
  4. 缓存问题:确保后台缓存已更新,浏览器缓存已清除。

对于绝大多数用户来说,方法一 就足以解决问题,也是最安全、最灵活的选择。

-- 展开阅读全文 --
头像
织梦表单JS路径怎么改?
« 上一篇 01-28
dede type调用子栏目,参数如何正确配置?
下一篇 » 01-28

相关文章

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

目录[+]