tags.php 是用于显示“标签列表页”的模板,当用户点击网站上的任何一个标签(tag)时,就会跳转到由 tags.php 控制和展示的页面,该页面会列出所有包含了这个标签的文章。

(图片来源网络,侵删)
工作原理
- 触发: 用户在前台页面点击一个标签链接,
<a href='/tags.php?/织梦CMS/'>织梦CMS</a>。 - 接收:
tags.php脚本接收到这个请求,它会解析 URL 中的tag参数(在这个例子中是织梦CMS)。 - 查询:
tags.php会调用数据库查询,找到所有与织梦CMS这个标签关联的文章。 - 渲染:
tags.php加载其对应的模板文件(默认是/templets/default/tags.htm),并将查询到的文章数据填充到模板中。 - 输出: 最终生成一个完整的 HTML 页面展示给用户。
默认模板文件位置
在 DedeCMS 的默认安装中,tags.php 模板文件通常位于:
/你的网站目录/templets/default/tags.htm
你可以根据自己的主题和设计需求,修改这个文件,或者在 templets 目录下创建新的文件夹(mytheme),然后将 tags.htm 放进去,再到后台“模板管理”中设置你当前使用的模板风格。
tags.php 模板代码详解与示例
下面是一个功能完整、注释清晰的 tags.php 模板示例,你可以基于此进行修改。
{dede:global name='keyword' function='RemoveXSS(@me)'/}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">{dede:field.title/} - {dede:global.cfg_webname/}</title>
<meta name="keywords" content="{dede:field.title/}, {dede:global.cfg_webname/}" />
<meta name="description" content="{dede:field.title/}”的相关文章列表" />
<!-- 引入你的CSS文件 -->
<link rel="stylesheet" href="{dede:global.cfg_templets_skin/}/style/css/style.css">
</head>
<body>
<!-- 头部文件 -->
{dede:include filename="head.htm"/}
<div class="main-container">
<div class="main-content">
<!-- 左侧内容区 -->
<div class="left-content">
<!-- 面包屑导航 -->
<div class="breadcrumb">
<a href="{dede:global.cfg_cmsurl/}/">首页</a> >
<a href="/tags.php">标签</a> >
<span>{dede:field.title/}</span>
</div>
<!-- 标签列表标题 -->
<div class="tag-title">
<h1>标签:{dede:field.title/}</h1>
<p>与“<strong>{dede:field.title/}</strong>”相关的文章,共找到 <span class="count">{dede:field.total/}</span> 篇。</p>
</div>
<!-- 文章列表开始 -->
<ul class="article-list">
{dede:taglist}
<li>
<h2><a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a></h2>
<div class="article-info">
<span class="date">发布时间:[field:pubdate function="MyDate('Y-m-d H:i',@me)"/]</span>
<span class="category">分类:<a href="[field:typeurl/]">[field:typename/]</a></span>
<span class="views">浏览:[field:click/]</span>
</div>
<div class="article-summary">
[field:description function="cn_substr(@me, 200)"/]...
</div>
</li>
{/dede:taglist}
</ul>
<!-- 文章列表结束 -->
<!-- 分页条 -->
<div class="page-nav">
{dede:pagelist listsize='4' listitem='info,index,end,pre,next,pageno'}
</div>
</div>
<!-- 右侧边栏 -->
<div class="right-sidebar">
<!-- 调用右侧模板文件 -->
{dede:include filename="side.htm"/}
</div>
</div>
</div>
<!-- 底部文件 -->
{dede:include filename="footer.htm"/}
<!-- 引入你的JS文件 -->
<script src="{dede:global.cfg_templets_skin/}/style/js/jquery.min.js"></script>
</body>
</html>
核心标签说明
{dede:global name='keyword'.../}
- 作用: 获取当前标签页面的关键词,这个关键词就是用户点击的那个标签名。
- 用途:
- 在
<title>中显示,如标签:织梦CMS - 网站名称。 - 在
<meta name="keywords">中使用,优化 SEO。 - 中显示,如
标签:织梦CMS。 function='RemoveXSS(@me)'是一个安全函数,用于过滤掉潜在的 XSS 攻击代码,建议保留。
- 在
{dede:field.title/}
- 作用: 与
keyword基本相同,获取当前标签的名称。 - 用途: 在页面内容区(如面包屑、标题)中显示标签名。
{dede:field.total/}
- 作用: 获取当前标签下关联的文章总数。
- 用途: 在页面中显示“共找到 X 篇文章”,给用户一个直观的数量概念。
{dede:taglist} ... {/dede:taglist}
- 作用: 这是标签列表页最核心的循环标签,它会循环遍历所有与当前标签关联的文章。
- 内部常用字段:
[field:arcurl/]: 文章的链接地址。[field:title/]: 文章的标题。[field:pubdate function="MyDate('Y-m-d H:i',@me)"/]: 文章的发布时间。function用于格式化日期。[field:typeurl/]: 文章所属分类的链接地址。[field:typename/]: 文章所属分类的名称。[field:click/]: 文章的点击数。[field:description function="cn_substr(@me, 200)"/]: 文章的摘要。function用于截取前200个字符,避免摘要过长。
{dede:pagelist} ... {/dede:paglist}
- 作用: 生成文章列表的分页导航条。
- 常用属性:
listsize='4': 显示页码的数量,当前页前后各显示2个。listitem='info,index,end,pre,next,pageno': 定义分页条显示哪些元素。info: 显示总页数、总条数等信息。index: 显示首页链接。pre: 显示上一页链接。next: 显示下一页链接。end: 显示尾页链接。pageno: 显示页码数字。
自定义与进阶
修改默认模板路径
如果你不想把模板文件放在 default 文件夹下,可以这样做:

(图片来源网络,侵删)
- 在
/templets/目录下新建一个文件夹,mytheme。 - 将
default/tags.htm复制到mytheme/目录下。 - 登录 DedeCMS 后台,进入 “系统” -> “系统基本参数” -> “核心设置”。
- 找到 “默认模板风格目录” 这一项,将其值修改为
mytheme。 - 保存后,系统就会自动加载
mytheme目录下的模板文件。
常见问题:标签页样式错乱或内容不显示
- 问题: 点击标签后,页面布局错乱,或者文章列表不显示。
- 排查步骤:
- 检查模板文件名: 确保文件名是
tags.htm,并且位于正确的templets/你的主题/目录下。 - 检查标签调用: 确保页面中使用了
{dede:taglist}标签来循环文章。 - 检查缓存: 有时是模板缓存问题,进入后台 “生成” -> “更新缓存”,然后重新点击标签页。
- 检查文章: 确保被关联的文章是“已审核”状态,并且确实设置了该标签。
- 检查标签本身: 确保你点击的标签是真实存在的,并且该标签下有文章,你可以在后台的“标签管理”中查看。
- 检查模板文件名: 确保文件名是
自定义标签页的URL形式
默认的标签URL是 tags.php?/标签名/,如果你希望它更美观,/tag/标签名.html,可以通过修改 tags.php 文件来实现,但这需要一定的 PHP 知识,并且可能会影响 SEO(因为标签页通常参数化,不利于搜索引擎索引),对于大多数网站,默认形式已经足够。
希望这份详细的解析能帮助你完全掌握 DedeCMS 的 tags.php 模板制作!

(图片来源网络,侵删)
