基础网站信息调用
这些标签通常放在 <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"。
调用带下拉子菜单的导航
如果需要实现二级导航,需要结合 模板代码: 代码解析: 将以上所有部分组合起来,一个典型的 希望这份详细的指南能帮助你完全掌握 DedeCMS 头部标签的调用!channelartlist 和 channel
<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>
总结与提示
{dede:global.cfg_xxx/} 和 {dede:field.xxx/} 这类标签必须在 DedeCMS 模板文件中使用,不能直接写在 HTML 文件里。title、keywords 和 description,这能让每个页面都有其独特的SEO信息,对搜索引擎更友好。head.htm),点击“更新”或“生成”才能生效。
