dede文章页如何调用tag标签?

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

最简单、最常用的方法(推荐)

这是 DedeCMS 最基础也是最直接的调用方式,适用于绝大多数场景。

dede文章页调用tag标签
(图片来源网络,侵删)

使用标签:

{dede:tag row='10' getall='0'}
    <a href="[field:link/]">[field:tag/]</a>
{/dede:tag}

标签属性说明:

  • row='10':表示调用 tag 的数量,10 表示调用 10 个,你可以根据需要修改这个数字,0 或不设置表示调用所有。
  • getall='0':表示是否调用全站的热门 tag。0 表示只调用当前文章的 tag,1 表示调用全站的热门 tag,在文章页,我们通常设置为 0

示例代码:

在你的 article_article.htm 模板文件中,你可以将这段代码放在你希望显示标签的位置,比如文章标题下方、内容上方或文章末尾。

dede文章页调用tag标签
(图片来源网络,侵删)
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">{dede:field.title/} - {dede:global.cfg_webname/}</title>
</head>
<body>
    <h1>{dede:field.title/}</h1>
    <div class="info">
        <span>作者:{dede:field.writer/}</span>
        <span>时间:{dede:field.pubdate function="MyDate('Y-m-d H:i',@me)"/}</span>
        <span>来源:{dede:field.source/}</span>
        <span>点击:{dede:field.click/}</span>
    </div>
    <!-- 文章内容 -->
    <div class="content">
        {dede:field.body/}
    </div>
    <!-- 在这里调用标签 -->
    <div class="tags">
        <strong>标签:</strong>
        {dede:tag row='10' getall='0'}
            <a href="[field:link/]">[field:tag/]</a>
        {/dede:tag}
    </div>
</body>
</html>

效果预览: 如果一篇文章的标签是 "dedecms", "网站建设", "php", "教程",那么前台页面会显示为: 标签:<a href="/tags.php?/dedecms">dedecms</a> <a href="/tags.php?/网站建设">网站建设</a> ...


自定义标签样式(添加CSS类)

如果你想让标签的样式更美观,比如给每个标签加上不同的背景色或边距,可以在 a 标签里添加 class 属性。

示例代码:

<div class="tags">
    <strong>标签:</strong>
    {dede:tag row='10' getall='0'}
        <a href="[field:link/]" class="tag-item">[field:tag/]</a>
    {/dede:tag}
</div>

然后在你的CSS文件中定义 .tag-item 的样式:

dede文章页调用tag标签
(图片来源网络,侵删)
.tag-item {
    display: inline-block; /* 让a标签可以设置宽高和margin */
    padding: 2px 8px;
    margin: 0 5px 5px 0;
    background-color: #f0f0f0;
    color: #333;
    border-radius: 3px;
    text-decoration: none;
    transition: background-color 0.3s;
}
.tag-item:hover {
    background-color: #007bff;
    color: #fff;
}

更灵活的调用(结合PHP)

如果你的需求更复杂,比如想对标签进行二次处理(如截取长度、首字母大写等),可以使用 php 标签结合 GetTags 函数来实现。

使用标签:

<div class="tags">
    <strong>标签:</strong>
    {dede:php}
        $tags = GetTags(@me);
        $tags = str_replace(',', ' ', $tags); // 将逗号替换成空格,或者你可以用其他分隔符
        echo $tags;
    {/dede:php}
</div>

代码解析:

  1. {dede:php}...{/dede:php}:这是一个可以执行任意PHP代码的块。
  2. @me:在这个标签块内,@me 代表外层字段的值,在这里就是 {dede:php} 所在位置的原始内容,对于文章页来说,就是当前文章的ID。
  3. GetTags():这是 DedeCMS 的一个核心函数,它接收一个文章ID作为参数,返回一个由逗号分隔的标签字符串,"dedecms,网站建设,php,教程"
  4. str_replace(',', ' ', $tags):这是一个PHP函数,我们将逗号替换成一个空格,这样标签之间就不会挤在一起,你也可以替换成其他HTML,<span>·</span> 来作为分隔符。

进阶示例(给每个标签加上链接):

如果你想在PHP方法中也为每个标签生成链接,可以这样做:

<div class="tags">
    <strong>标签:</strong>
    {dede:php}
        $tags = GetTags(@me);
        $tagArray = explode(',', $tags);
        if (is_array($tagArray)) {
            foreach ($tagArray as $tag) {
                $tag = trim($tag); // 去除可能的空格
                if ($tag) {
                    // 拼接出标签链接的URL
                    $tagUrl = "/tags.php?/".urlencode($tag);
                    echo "<a href='{$tagUrl}' class='tag-item'>{$tag}</a> ";
                }
            }
        }
    {/dede:php}
</div>

这种方法非常灵活,但代码量也稍多,对于绝大多数用户,方法一已经完全够用了。


总结与注意事项

方法 优点 缺点 适用场景
方法一 简单、高效、官方推荐 自定义样式需额外操作 99% 的场景,直接使用即可
方法二 样式灵活,美观 依赖于CSS 需要对标签进行美化时
方法三 极度灵活,可进行任何PHP处理 代码复杂,有一定门槛 需要对标签进行复杂逻辑处理时

重要提示:

  1. 确保文章有标签:如果某篇文章在后台没有填写标签,那么以上方法都不会显示任何内容。
  2. URL路径:默认情况下,标签页的路径是 /tags.php,如果你的网站配置了伪静态,标签链接可能会变成 /tags/标签名/ 的形式。[field:link/] 标签会自动适应你的网站设置。
  3. 模板缓存:修改模板文件后,如果前台没有立即生效,请登录DedeCMS后台点击 “生成” -> “更新HTML”,并选择更新相关文章页。

希望这些方法能帮助你完美地在文章页调用出标签!

-- 展开阅读全文 --
头像
dede织梦html手机模板怎么适配手机?
« 上一篇 前天
dede浏览权限提示信息怎么修改?
下一篇 » 前天

相关文章

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

目录[+]