织梦tag标签主页模板如何自定义?

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

织梦的Tag标签页面是一个动态页面,它不像首页、列表页那样有固定的物理模板文件(如 index.htm),它的模板文件是固定的,叫做 taglist.htm,你所有的修改都需要在这个文件中进行。

织梦tag标签主页模板
(图片来源网络,侵删)

下面我将从 文件位置、模板结构、常用标签、实战示例 四个方面,为你提供一个完整的指南。


文件位置

taglist.htm 文件位于你当前主题(模板)目录下。

/你的网站根目录/
  /templets/
    /default/          <-- 你的主题文件夹,可能是 default 或其他自定义名称
      ├── index.htm    <-- 首页模板
      ├── list_*.htm   <-- 列表页模板
      ├── article_art.htm <-- 文章内容页模板
      ├── ...
      └── taglist.htm  <-- 【重点】Tag标签列表页模板

重要提示: 如果你找不到 taglist.htm 文件,请从织梦程序的 /templets/default/ 目录下复制一个到你当前使用的主题文件夹中。


模板结构分析

一个典型的 taglist.htm 模板文件结构如下,包含了HTML的基本骨架和织梦的特定标签。

织梦tag标签主页模板
(图片来源网络,侵删)
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">{dede:field.title/}_{dede:global.cfg_webname/}</title>
    <meta name="keywords" content="{dede:field.title/}">
    <meta name="description" content="{dede:field.title/}”标签下的所有文章列表。">
    <!-- 这里可以引入你的CSS和JS文件 -->
    <link rel="stylesheet" href="/templets/default/style.css">
</head>
<body>
    <!-- 1. 网站头部 (通常包含Logo、导航等) -->
    {dede:include filename="head.htm"/}
    <div class="main-container">
        <div class="main-content">
            <!-- 2. 当前标签的面包屑导航 -->
            <div class="breadcrumb">
                <a href="/">首页</a> > 标签: <strong>{dede:field.title/}</strong>
            </div>
            <!-- 3. 标签描述 (可选) -->
            {dede:tagname}
            <div class="tag-desc">
                <p>标签简介:[field:descript/]</p>
            </div>
            {/dede:tagname}
            <!-- 4. 核心内容区:调用该标签下的所有文章列表 -->
            <ul class="article-list">
                {dede:list pagesize='10'}
                <li>
                    <h2><a href="[field:arcurl/]">[field:title/]</a></h2>
                    <p class="info">
                        <span>发布时间:[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
                        <span>浏览:[field:click/]</span>
                        <span>评论:[field:postnum/]</span>
                    </p>
                    <div class="summary">
                        [field:description function='cn_substr(@me, 200)'/]...
                    </div>
                </li>
                {/dede:list}
            </ul>
            <!-- 5. 分页条 -->
            <div class="page-nav">
                {dede:pagelist listitem="info,index,end,pre,next,pageno" listsize="5"/}
            </div>
        </div>
    </div>
    <!-- 6. 网站底部 (通常包含版权、友情链接等) -->
    {dede:include filename="footer.htm"/}
</body>
</html>

核心标签详解

taglist.htm 中,你会用到以下几类核心标签:

页面基本信息标签

  • {dede:field.title/}: 当前页面的标题,即用户点击的那个Tag标签名,用户点击了“织梦教程”,这里就会显示“织梦教程”。
  • {dede:global.cfg_webname/}: 网站站名。
  • {dede:tagname}: 当前标签的详细信息,需要用 {/dede:tagname} 包裹。
    • [field:descript/]: 当前标签的描述,需要在后台“标签管理”中为每个标签填写描述才能显示。
  • {dede:pagelist listitem='...' listsize='...' /}: 分页标签,用于生成分页链接。
    • listitem: 控制显示哪些分页元素,常用值有 index(首页), pre(上一页), next(下一页), end(末页), pageno(页码), info(页码信息)。
    • listsize: 显示的页码数量。

内容循环标签

这是 taglist.htm 中最重要的部分,用于调用属于当前Tag的所有文章。

{dede:list pagesize='10'}
    <!-- 循环体内的内容,每篇文章都会执行一次 -->
    <a href="[field:arcurl/]">[field:title/]</a>
{/dede:list}
  • {dede:list}: 列表开始标签
    • pagesize='10': 每页显示的文章数量,你可以根据需要修改这个数字。
  • {/dede:list}: 列表结束标签
  • [field:arcurl/]: 文章的链接地址
  • [field:title/]: 。
  • [field:pubdate function="MyDate('Y-m-d',@me)"/]: 文章的发布日期function="MyDate(...)" 是一个函数,用来格式化日期,'Y-m-d' 表示 年-月-日
  • [field:click/]: 文章的点击数
  • [field:postnum/]: 文章的评论数
  • [field:description/]: 文章的摘要,通常我们会用 cn_substr 函数截取前200个字符:[field:description function='cn_substr(@me, 200)'/]

实战示例:制作一个简洁的Tag列表页

录是 /templets/mytheme/,我们来创建一个简单实用的 taglist.htm

步骤1:复制模板文件/templets/default/ 复制 taglist.htm/templets/mytheme/

织梦tag标签主页模板
(图片来源网络,侵删)

步骤2:编辑 taglist.htm 文件

打开 /templets/mytheme/taglist.htm,清空原有内容,然后粘贴以下代码:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">{dede:field.title/} - {dede:global.cfg_webname/}</title>
    <meta name="keywords" content="{dede:field.title/}">
    <meta name="description" content="查看关于“{dede:field.title/}”的所有文章。">
    <style>
        body { font-family: 'Microsoft YaHei', sans-serif; line-height: 1.6; margin: 0; padding: 20px; background-color: #f4f4f4; }
        .container { max-width: 800px; margin: 20px auto; background: #fff; padding: 20px; border-radius: 8px; box-shadow: 0 2px 5px rgba(0,0,0,0.1); }
        .page-header { border-bottom: 1px solid #eee; padding-bottom: 10px; margin-bottom: 20px; }
        .page-header h1 { margin: 0; font-size: 24px; color: #333; }
        .breadcrumb { font-size: 14px; color: #666; }
        .breadcrumb a { color: #007bff; text-decoration: none; }
        .breadcrumb a:hover { text-decoration: underline; }
        .article-item { padding: 15px 0; border-bottom: 1px solid #eee; }
        .article-item:last-child { border-bottom: none; }
        .article-item h2 { margin: 0 0 10px 0; font-size: 18px; }
        .article-item h2 a { color: #333; text-decoration: none; }
        .article-item h2 a:hover { color: #007bff; }
        .article-meta { font-size: 12px; color: #999; margin-bottom: 10px; }
        .article-summary { color: #555; line-height: 1.8; }
        .page-nav { text-align: center; margin-top: 30px; }
        .page-nav a, .page-nav span { margin: 0 5px; padding: 5px 10px; border: 1px solid #ddd; text-decoration: none; color: #333; }
        .page-nav a:hover { background-color: #007bff; color: #fff; border-color: #007bff; }
        .page-nav .thisclass { background-color: #007bff; color: #fff; border-color: #007bff; }
    </style>
</head>
<body>
    <div class="container">
        <!-- 页面头部 -->
        <div class="page-header">
            <div class="breadcrumb">
                <a href="/">首页</a> > 标签: <strong>{dede:field.title/}</strong>
            </div>
            <h1>标签: {dede:field.title/}</h1>
        </div>
        <!-- 标签描述(可选) -->
        {dede:tagname}
            {if field:descript/ != ''}
            <div class="tag-desc">
                <p><strong>标签简介:</strong>[field:descript/]</p>
            </div>
            {/if}
        {/dede:tagname}
        <!-- 文章列表 -->
        <div class="article-list">
            {dede:list pagesize='15'}
            <div class="article-item">
                <h2><a href="[field:arcurl/]">[field:title/]</a></h2>
                <div class="article-meta">
                    发布时间:[field:pubdate function="MyDate('Y-m-d H:i',@me)"] &nbsp;|&nbsp;
                    浏览:[field:click] &nbsp;|&nbsp;
                    评论:[field:postnum]
                </div>
                <div class="article-summary">
                    [field:description function='cn_substr(@me, 200)'/]...
                </div>
            </div>
            {/dede:list}
        </div>
        <!-- 分页 -->
        <div class="page-nav">
            {dede:pagelist listitem="index,pre,next,end,pageno" listsize="5"}
        </div>
    </div>
</body>
</html>

代码说明:

  1. 响应式设计:添加了 viewport 标签和一些基础的CSS样式,使其在手机上也能良好显示。
  2. 结构清晰:使用 containerpage-headerarticle-item 等CSS类,让HTML结构更清晰。
  3. 条件判断{if field:descript/ != ''}...{/if} 只有当标签有描述时才显示简介部分,避免空白。
  4. 日期格式:将日期格式化为 年-月-日 时:分,更具体。
  5. 分页样式:为分页链接添加了简单的CSS样式,使其更美观。

常见问题与解决

Q1: 为什么我点击Tag标签后,页面是404或者空白?

A1: 这是最常见的问题,原因通常是:

  • 伪静态规则未开启:织梦Tag列表页需要伪静态支持才能正常工作,请确保你的服务器(Apache或Nginx)已经配置了织梦的伪静态规则。
    • Apache用户:检查网站根目录下是否有 .htaccess 文件,并确保其中包含织梦的伪静态规则。
    • Nginx用户:在Nginx的配置文件中,为你的站点添加织梦的伪静态规则,nginx -t 检查语法并 nginx -s reload 重载配置。
  • 模板文件缺失:如前所述,确保你的主题目录下有 taglist.htm 文件。

Q2: 如何修改Tag列表页的URL格式?

A2: 织梦的Tag URL格式是在后台设置的。

  1. 登录织梦后台。
  2. 进入【系统】-> 【系统基本参数】-> 【核心设置】。
  3. 找到 “(是/否)使用伪静态” 选项,选择 “是”。
  4. 向下滚动,找到 “栏目链接默认规则” 和 “文章链接默认规则” 下面的 “TAG标签默认规则”
  5. 你可以在这里修改URL的格式,例如从 tags.php?/tagname.html 修改为 tag/tagname.html
  6. 修改后,你需要同时更新服务器的伪静态规则,使其与新的URL格式匹配。

Q3: 我想在Tag列表页调用其他内容,比如推荐文章、热门文章,可以吗?

A3: 不可以直接调用{dede:list} 标签是专门用来调用属于当前Tag的文章的,如果你想调用全站的推荐文章或热门文章,你需要使用其他标签,但请注意,这可能会与Tag列表页的核心功能(展示相关文章)产生冲突,通常不推荐这样做。

希望这份详细的指南能帮助你制作出满意的织梦Tag标签主页模板!

-- 展开阅读全文 --
头像
织梦PC与手机数据如何实时同步?
« 上一篇 02-10
dede如何获取上级栏目id?
下一篇 » 02-10

相关文章

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

目录[+]