织梦CMS如何调用文章标签?

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

下面我将从基础调用高级应用,为你详细讲解织梦CMS中调用文章标签的各种方法。

织梦cms调用文章标签
(图片来源网络,侵删)

基础调用:在文章内容页(article_article.htm)调用

这是最简单的情况,在文章的详情页,你希望显示这篇文章本身的所有标签。

适用模板文件: /templets/default/article_article.htm

方法: 使用织梦的内置标签 {dede:tag}

代码示例:

织梦cms调用文章标签
(图片来源网络,侵删)
{dede:tag}
    <a href="[field:link/]" title="[field:tag /]">[field:tag /]</a>
{/dede:tag}

代码解析:

  • {dede:tag} ... {/dede:tag}:这是一个循环标签,会遍历当前文章的所有标签。
  • [field:link/]这是最重要的属性,它自动生成了指向该标签聚合页面的链接,你不需要手动拼接URL。
  • [field:tag/]:输出标签的名称。"[field:tag /]"为链接添加title` 属性,有利于SEO和用户体验。

效果: 如果一篇文章有标签“织梦CMS”、“建站教程”,那么上面的代码会生成类似这样的HTML: <a href="/tags.php?/zhimengcms/" title="织梦CMS">织梦CMS</a> <a href="/tags.php?/jiaocheng/" title="建站教程">建站教程</a>


常规调用:在列表页、首页等调用其他文章的标签

这种情况更常见,比如在文章列表页,你希望在每篇文章的标题下方显示该文章的几个标签。

适用模板文件:

织梦cms调用文章标签
(图片来源网络,侵删)
  • 首页:/templets/default/index.htm
  • 栏目列表页:/templets/default/list_栏目ID.htm
  • 搜索页等

方法: 同样使用 {dede:tag} 标签,但需要通过 row 属性来限制显示的标签数量。

代码示例(在列表页循环中调用):

{dede:arclist titlelen='30' row='10'}
    <h3><a href="[field:arcurl/]">[field:title/]</a></h3>
    <!-- 在这里调用标签,只显示前3个 -->
    {dede:tag row='3' getall='0'}
        <a href="[field:link/]" class="tag">[field:tag/]</a>
    {/dede:tag}
    <hr>
{/dede:arclist}

代码解析:

  • {dede:arclist}:这是文章列表的循环标签。
  • {dede:tag row='3'}:在 arclist 的循环内部,再次使用 tag 标签。
    • row='3':表示只显示当前文章的前3个
    • getall='0':这个属性可以省略,默认就是 0,表示按 row 的数量来获取,如果设为 1,则获取所有标签(但通常配合 row 使用时设为 0)。
  • [field:link/][field:tag/]:与第一种情况中的用法完全相同。

效果: 列表中的每一篇文章下面,都会显示最多3个可点击的标签链接。


高级应用:调用指定栏目或全站的热门标签

你可能想在侧边栏显示一个“热门标签”云,这些标签可以是全站的,也可以是指定栏目的。

调用全站热门标签

适用场景: 侧边栏、页脚等,展示网站的核心关键词。

代码示例:

<div class="hot-tags">
    <h3>热门标签</h3>
    {dede:tag row='30' sort='hot'}
        <a href="[field:link/]" title="[field:tag/] ([field:total/])">[field:tag/]</a>
    {dede:tag}
</div>

代码解析:

  • {dede:tag row='30' sort='hot'}
    • row='30':显示30个热门标签。
    • sort='hot'核心属性,表示按“热门度”排序,热门度通常由标签被使用的次数决定。
  • [field:total/]:这是一个非常有用的属性,它表示该标签被引用的总次数,我们可以用它来显示标签的热门程度,或者在CSS中动态调整标签的样式。

调用指定栏目下的热门标签

适用场景: 在一个技术博客的“前端开发”栏目页,只显示“前端开发”相关的热门标签。

代码示例:

<div class="channel-tags">
    <h3>本栏目热门标签</h3>
    {dede:tag row='20' sort='hot' typeid='栏目ID'}
        <a href="[field:link/]" title="[field:tag/] ([field:total/])">[field:tag/]</a>
    {dede:tag}
</div>

代码解析:

  • {dede:tag ... typeid='栏目ID'}
    • typeid='栏目ID'核心属性,用于限制标签的范围,将其替换为你想要的目标栏目的ID即可。
    • 其他属性如 rowsort 与全站热门标签用法一致。

标签云(Tag Cloud)效果

上面的热门标签已经是一个简单的标签云了,我们可以利用 [field:total/] 属性,结合CSS,创建一个视觉上更有冲击力的标签云。

HTML部分:

<div class="tagcloud">
    {dede:tag row='50' sort='hot'}
        <a href="[field:link/]" style="font-size:[field:total/]px">[field:tag/]</a>
    {dede:tag}
</div>

CSS部分 (可以放在你的CSS文件中):

.tagcloud {
    line-height: 2.5;
    padding: 10px;
}
.tagcloud a {
    display: inline-block; /* 让a标签可以设置宽高和margin */
    margin: 5px;
    padding: 2px 8px;
    background-color: #f0f0f0;
    border-radius: 12px;
    color: #333;
    text-decoration: none;
    white-space: nowrap; /* 防止文字换行 */
    /* 注意:这里的字体大小由内联style动态设置,CSS中可以设置一个基础大小 */
    font-size: 12px; /* 基础大小 */
}
/* 鼠标悬停效果 */
.tagcloud a:hover {
    background-color: #007bff;
    color: #fff;
}

实现原理:

  • 我们直接在内联样式中设置了 font-size: [field:total/]px
  • [field:total/] 的值是数字,5”、“15”、“30”。
  • 这样,使用次数越多的标签,total 值越大,显示的字体也就越大,从而形成了标签云的视觉效果。
  • 注意: 这种直接使用 total 作为像素值的方法可能不够灵活,更好的做法是使用CSS变量或在PHP中进行范围计算,然后赋予不同的CSS类名(如 tag-level-1, tag-level-2 等)。

常见问题与注意事项

  1. 标签没有显示出来?

    • 检查文章是否已添加标签: 进入后台编辑文章,确保在“标签”文本框中输入了标签,并且用英文逗号隔开(如 织梦CMS, 建站教程)。
    • 检查标签是否已生成: 有时添加标签后需要更新相关页面才能显示,可以去“核心” -> “批量维护” -> “一键更新网站缓存”中更新一下。
    • 检查模板标签拼写: 确保标签名称 {dede:tag} 和字段名 [field:link/] 等拼写正确。
  2. 标签链接指向哪里?

    • 默认情况下,所有标签链接都会指向 tags.php?/标签名/ 这个页面,这个页面是织梦系统自带的标签聚合页,会列出所有带有该标签的文章。
  3. 如何获取标签的ID?

    • {dede:tag} 标签中,可以使用 [field:id/] 来获取标签的ID,虽然不常用,但在某些二次开发场景下可能会用到。
调用场景 核心标签代码 关键属性/说明
{dede:tag}<a href="[field:link/]">[field:tag/]</a>{/dede:tag} 基础用法,显示当前文章所有标签。
列表页/首页 {dede:arclist}...{dede:tag row='3'}...{/dede:tag}{/dede:arclist} arclist 循环内部使用,row 限制显示数量。
全站热门标签 {dede:tag row='30' sort='hot'}...{/dede:tag} sort='hot' 按热门度排序。
指定栏目标签 {dede:tag typeid='栏目ID' row='20'}...{/dede:tag} typeid 限制标签来源栏目。
标签云效果 <a style="font-size:[field:total/]px">[field:tag/]</a> 利用 [field:total/] 动态设置字体大小。

希望这份详细的指南能帮助你完全掌握织梦CMS中标签的调用!

-- 展开阅读全文 --
头像
织梦CMS栏目删不掉怎么办?
« 上一篇 今天
C语言struct初始化有哪些方法?
下一篇 » 今天

相关文章

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