dede调用文章tag

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

核心标签

在DedeCMS中,调用文章标签的核心有两个主要标签:

dede调用文章tag
(图片来源网络,侵删)
  1. {dede:tag}: 这是一个列表式的标签,用于在循环中(如文章列表、文章内容页)获取单个文章的多个标签,这是最常用、最灵活的标签。
  2. {dede:mytag}: 这是一个调用指定标签的标签,通常用于在网站侧边栏等位置调用热门标签、随机标签等。

在文章列表页(如 index.html, list_article.html)调用每篇文章的标签

这是最常见的需求,比如在文章标题下方显示该文章的所有标签。

使用 {dede:tag}

将以下代码放置在你希望显示标签的位置,通常是在 {dede:list}{dede:arclist} 循环标签内部。

{dede:list pagesize='10'}
    <h3><a href="[field:arcurl/]">[field:title/]</a></h3>
    <p>[field:description/]...</p>
    <!-- 在这里调用标签 -->
    <div class="tags">
        {dede:tag sort='hot' getall='0'}
            <a href="[field:tagurl/]">[field:tag/]</a>
        {/dede:tag}
    </div>
    <hr>
{/dede:list}

代码详解:

  • {dede:tag}: 开始标签循环。
  • sort='hot': 可选属性,用于对标签进行排序。
    • hot: 按标签被使用的次数(热度)排序,从高到低。
    • new: 按标签ID(或添加时间)排序,从高到低。
    • rand: 随机排序。
    • 如果不写此属性,则按默认顺序。
  • getall='0': 重要属性,控制获取标签的数量。
    • 0: 只获取当前文章的标签。
    • 1: 获取全站的标签(不推荐在列表页使用,会造成性能问题)。
  • [field:tagurl/]: 重要字段,生成该标签的链接地址,点击后可以查看所有带有此标签的文章。
  • [field:tag/]: 显示标签的文本名称。

示例输出效果:

dede调用文章tag
(图片来源网络,侵删)
<h3><a href="/article/1.html">DedeCMS标签调用方法详解</a></h3>
<p>这是一篇关于DedeCMS标签用法的文章...</p>
<div class="tags">
    <a href="/tags.php?/DedeCMS/">DedeCMS</a>
    <a href="/tags.php?/标签/">标签</a>
    <a href="/tags.php?/调用/">调用</a>
</div>
<hr>

页(article_article.html)调用当前文章的标签

在文章详情页,我们同样希望显示该文章相关的标签,方便用户点击浏览。

使用 {dede:tag} 模板(article_article.html)中,找到合适的位置(如文章内容下方、作者信息旁边)插入以下代码:

<h1>[field:title/]</h1>
<div class="info">
    作者:[field:writer/] &nbsp; 发布时间:[field:pubdate function="MyDate('Y-m-d H:i',@me)"/]
</div>
<div class="content">
    [field:body/]
</div>
<!-- 在这里调用标签 -->
<div class="tags">
    <strong>相关标签:</strong>
    {dede:tag sort='hot' getall='0'}
        <a href="[field:tagurl/]">[field:tag/]</a>
    {/dede:tag}
</div>

代码与列表页完全相同,因为 {dede:tag} 在循环内部或单页文章内部都能正确识别当前文章的ID。


在网站侧边栏等位置调用全站的“热门标签”或“随机标签”

这种调用不针对某篇文章,而是从全站所有标签中筛选出最热门或最随机的几个。

使用 {dede:mytag}

这个标签需要你在后台的“标签管理”中先设置好一个“标签云”,然后在模板中调用它。

直接调用后台已创建的“标签云”

  1. 登录DedeCMS后台,进入「标签管理」->「标签云」。
  2. 点击「增加标签云」,填写名称(如“热门标签云”),选择排序方式(如“按使用次数”),选择调用数量(如20个),然后保存。
  3. 假设你创建的标签云ID为 1

在侧边栏模板(如 templets/default/index.htm)中,使用以下代码调用:

<div class="sidebar-box">
    <h3>热门标签</h3>
    {dede:mytag typeid='1' /}
</div>
  • typeid='1': 这里填写的是你在后台创建的“标签云”的ID。

使用更灵活的 arclist 标签(推荐)

{dede:mytag} 有时不够灵活,推荐使用 arclist 标签的 tag 属性来实现,效果更好。

<div class="sidebar-box">
    <h3>热门标签</h3>
    <div class="tagcloud">
        {dede:arclist row='20' titlelen='20' orderby='click'}
            <a href="[field:arcurl/]">[field:title/]</a>
        {/dede:arclist}
    </div>
</div>

错误! 上面这个例子是调用热门文章,不是热门标签,请看下面的正确方法。

正确调用热门标签的方法:

直接使用 {dede:tag} 并设置 getall='1' 来获取全站标签,然后通过 row 属性限制数量。

<div class="sidebar-box">
    <h3>热门标签</h3>
    <div class="tagcloud">
        {dede:tag sort='hot' getall='1' row='20'}
            <a href="[field:tagurl/]" title="[field:tag/]">[field:tag/]</a>
        {/dede:tag}
    </div>
</div>

代码详解:

  • getall='1': 关键!设置为 1 表示从全站所有标签中获取。
  • sort='hot': 按标签使用次数(热度)排序,从高到低。
  • row='20': 只获取前20个最热门的标签。

调用随机标签:

只需将 sort 属性改为 rand 即可。

<div class="sidebar-box">
    <h3>随机标签</h3>
    <div class="tagcloud">
        {dede:tag sort='rand' getall='1' row='20'}
            <a href="[field:tagurl/]" title="[field:tag/]">[field:tag/]</a>
        {/dede:tag}
    </div>
</div>

常见问题与注意事项

  1. 标签链接打不开,显示404

    • 原因:网站的伪静态规则没有开启或配置不正确。
    • 解决:确保在后台“系统”->“系统基本参数”->“核心设置”中,开启了“使用伪静态”,并且你的服务器(如Apache或Nginx)已经加载了DedeCMS的伪静态规则文件(.htaccessnginx.conf)。
  2. 为什么文章没有标签显示?

    • 原因:发布文章时,没有在“标签”输入框中填写标签。
    • 解决:编辑文章,在标签框里输入标签,用英文逗号 隔开多个标签,然后更新文章。
  3. getall='1' 为什么在列表页要慎用?

    • 原因getall='1' 会让每次循环都去查询全站的标签数据,如果文章列表有10篇,就会执行10次全站标签查询,对数据库造成巨大压力,导致网站加载缓慢。
  4. 如何给标签添加样式(如不同颜色)? 你可以结合CSS来实现,给标签的 a 标签添加一个类名,然后通过CSS随机或按顺序设置颜色。

    HTML部分:

    {dede:tag sort='rand' getall='1' row='20'}
        <a href="[field:tagurl/]" class="tag-item">[field:tag/]</a>
    {/dede:tag}

    CSS部分 (在 /templets/default/style/dedecms.css 中添加):

    .tag-item {
        display: inline-block;
        margin: 2px;
        padding: 2px 8px;
        background-color: #f0f0f0;
        border-radius: 12px;
        /* 可以通过JS动态添加颜色,或者使用nth-child选择器 */
    }
    .tag-item:nth-child(3n+1) { background-color: #ffdddd; }
    .tag-item:nth-child(3n+2) { background-color: #ddffdd; }
    .tag-item:nth-child(3n) { background-color: #ddddff; }
调用场景 推荐标签 关键属性 说明
文章列表页 {dede:tag} getall='0' 循环调用当前文章的标签。
{dede:tag} getall='0' 调用当前文章的标签。
侧边栏-热门标签 {dede:tag} getall='1', sort='hot', row='20' 从全站调用最热门的N个标签。
侧边栏-随机标签 {dede:tag} getall='1', sort='rand', row='20' 从全站调用随机的N个标签。

希望这份详细的指南能帮助你完美地在DedeCMS中调用文章标签!

-- 展开阅读全文 --
头像
c语言中extern的作用
« 上一篇 03-24
织梦仿站如何做大站?实战技巧有哪些?
下一篇 » 03-24
取消
微信二维码
支付宝二维码