dede头部标签如何正确调用与使用?

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

基础网站信息调用

这些标签通常放在 <head> 标签内,用于SEO和网站基本设置。

(<title>)

是SEO中最重要的部分,DedeCMS 提供了非常灵活的标题调用方式,可以根据不同页面自动生成。

标签代码:

进阶用法(强烈推荐): 使用 function='html2text(@me)' 来过滤掉标题中的HTML标签,防止意外输出。

更智能的标题(根据栏目和文章自动变化): 这个标签会根据当前页面的类型(首页、栏目页、文章页)自动拼接出最合适的标题。

  • {dede:field.title/}: 当前栏目标题或文章标题。
  • {dede:field.seotitle/}: 当前栏目的SEO标题或文章的SEO标题(如果设置了的话,优先级高于title)。
  • {dede:global.cfg_webname/}: 网站主标题。

示例效果:

  • 首页: 我的网站首页_我的网站
  • 栏目页: "新闻"栏目_新闻频道_我的网站
  • 文章页: "织梦CMS教程发布"文章标题_织梦教程_我的网站

网站关键词 (<meta name="keywords">)

调用后台设置的全局关键词,也可以根据当前页面动态获取。

标签代码:

<meta name="keywords" content="{dede:global.cfg_keywords/}" />

进阶用法(动态关键词):

  • 首页: 调用全局关键词。
  • 栏目页: 调用栏目的关键词。
  • 文章页: 调用文章的关键词。
<meta name="keywords" content="{dede:field name='keywords'/}" />

如果文章没有填写关键词,它会自动显示全局关键词,如果栏目没有填写,也会回退到全局关键词。

网站描述 (<meta name="description">)

与关键词类似,可以调用全局描述或页面特定描述。

标签代码:

<meta name="description" content="{dede:global.cfg_description/}" />

进阶用法(动态描述):

  • 首页: 调用全局描述。
  • 栏目页: 调用栏目的描述。
  • 文章页: 调用文章的摘要(如果文章摘要为空,则调用文章正文的前部分)。
<meta name="description" content="{dede:field name='description' function='html2text(@me)'/}" />

使用 html2text 函数可以过滤掉摘要中的HTML标签,得到纯文本。


Logo 和网站 Logo 调用

Logo通常放在 <header> 标签内。

调用 Logo 图片

标签代码:

<a href="{dede:global.cfg_cmsurl/}/" class="logo">
    <img src="{dede:global.cfg_logo/}" alt="{dede:global.cfg_webname/}" />
</a>
  • {dede:global.cfg_cmsurl/}: 网站的根目录URL,链接到首页。
  • {dede:global.cfg_logo/}: 后台“基本参数”中设置的Logo图片路径。
  • alt="{dede:global.cfg_webname/}": 图片的替代文字,对SEO友好。

调用 Logo 文字

如果网站使用文字Logo,可以这样调用:

<h1 class="logo">
    <a href="{dede:global.cfg_cmsurl/}/">{dede:global.cfg_webname/}</a>
</h1>

<h1> 标签对SEO非常重要,通常用于网站的唯一性标题(即Logo)。


主导航菜单调用

这是头部最重要的部分之一,通常使用 channel 标签来实现。

调用所有顶级栏目(包括首页)

这个标签会循环输出所有顶级栏目,并自动为当前栏目页添加 class="current" 类,方便我们实现高亮效果。

标签代码:

<ul id="nav">
    <li><a href="{dede:global.cfg_cmsurl/}/" class="{dede:field name='typeid' runphp='yes'}@me = (0 == @me ? 'current' : '');{/dede:field}">首页</a></li>
    {dede:channel type='top' currentstyle="<li class='current'><a href='~typelink~'>~typename~</a></li>"}
    <li><a href="[field:typelink/]">[field:typename/]</a></li>
    {/dede:channel}
</ul>

代码解析:

  • {dede:channel type='top' ...}: 调用所有顶级栏目。
    • type='top': 指定只调用顶级栏目。
    • currentstyle="...": 这是核心功能,当栏目是当前栏目时,会执行这里的代码。~typelink~~typename~ 会被替换成对应的链接和名称。
  • {dede:field name='typeid' runphp='yes'}...{/dede:field}: 这是首页高亮判断逻辑,如果当前页面的 typeid 为 0(即首页),则给首页的 <a> 标签加上 class="current"

调用带下拉子菜单的导航

如果需要实现二级导航,需要结合 channelartlistchannel

模板代码:

<ul id="nav">
    <li><a href="{dede:global.cfg_cmsurl/}/" class="{dede:field name='typeid' runphp='yes'}@me = (0 == @me ? 'current' : '');{/dede:field}">首页</a></li>
    {dede:channelartlist typeid='top' currentstyle="<li class='current'><a href='~typelink~'>~typename~</a></li>"}
        <li>
            <a href="[field:typelink/]">[field:typename/]</a>
            {dede:channel type='son' noself='yes'}
            <div class="subnav">
                <a href="[field:typelink/]">[field:typename/]</a>
            </div>
            {/dede:channel}
        </li>
    {/dede:channelartlist}
</ul>

代码解析:

  • {dede:channelartlist ...}: 循环输出顶级栏目。
    • typeid='top': 指定只处理顶级栏目。
    • currentstyle="...": 当前顶级栏目高亮。
  • {dede:channel type='son' noself='yes'}: 在 channelartlist 循环内部,调用当前顶级栏目的所有子栏目。
    • type='son': 指定调用子栏目。
    • noself='yes': 不显示当前栏目本身。

完整头部模板示例

将以上所有部分组合起来,一个典型的 head.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:field.seotitle/}_{dede:global.cfg_webname/}</title>
    <meta name="keywords" content="{dede:field.name='keywords'/}" />
    <meta name="description" content="{dede:field.name='description' function='html2text(@me)'/}" />
    <link rel="stylesheet" href="{dede:global.cfg_cmsurl/}/static/css/style.css">
    <!-- 其他CSS或JS文件 -->
</head>
<body>
    <header>
        <div class="container">
            <div class="logo">
                <a href="{dede:global.cfg_cmsurl/}/">
                    <img src="{dede:global.cfg_logo/}" alt="{dede:global.cfg_webname/}">
                </a>
            </div>
            <nav>
                <ul id="nav">
                    <li><a href="{dede:global.cfg_cmsurl/}/" class="{dede:field name='typeid' runphp='yes'}@me = (0 == @me ? 'current' : '');{/dede:field}">首页</a></li>
                    {dede:channel type='top' currentstyle="<li class='current'><a href='~typelink~'>~typename~</a></li>"}
                    <li><a href="[field:typelink/]">[field:typename/]</a></li>
                    {/dede:channel}
                </ul>
            </nav>
        </div>
    </header>
    <main>
        <!-- 页面主要内容 -->
    </main>
    <footer>
        <!-- 页脚内容 -->
    </footer>
</body>
</html>

总结与提示

  1. 标签位置{dede:global.cfg_xxx/}{dede:field.xxx/} 这类标签必须在 DedeCMS 模板文件中使用,不能直接写在 HTML 文件里。
  2. 后台设置:大部分全局信息(如网站名称、Logo、关键词、描述)都需要在 DedeCMS 后台的 “系统” -> “系统基本参数” 中进行设置。
  3. SEO优化:强烈推荐使用动态的 titlekeywordsdescription,这能让每个页面都有其独特的SEO信息,对搜索引擎更友好。
  4. 模板修改:修改这些标签后,需要到后台的 “模板” -> “默认模板管理” 中,找到对应的模板文件(通常是 head.htm),点击“更新”或“生成”才能生效。

希望这份详细的指南能帮助你完全掌握 DedeCMS 头部标签的调用!

-- 展开阅读全文 --
头像
dede生成无反应怎么办?
« 上一篇 04-18
C语言socket对比,差异与选型指南?
下一篇 » 04-18

相关文章

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