核心要点
在DedeCMS中,href 的值可以大致分为两类:

(图片来源网络,侵删)
- 静态值:直接写死在HTML代码中的URL,比如指向外部网站、网站根目录下的静态文件等。
- 动态值:使用DedeCMS的模板标签(如
{dede:field}、{dede:arclist}等)动态生成的URL,用于链接到网站内部的动态页面(如文章、栏目、列表页等)。
静态链接跳转
这是最简单、最直接的方式,用于链接到网站外部或网站内部的固定页面。
链接到外部网站
直接填写完整的 http:// 或 https:// 开头的网址。
<!-- 链接到百度 --> <a href="https://www.baidu.com" target="_blank">前往百度</a> <!-- 链接到本站根目录下的静态文件,如关于我们页面(假设是静态生成的) --> <a href="/about.html">关于我们</a>
说明:
target="_blank"表示在新窗口中打开链接。/about.html是相对于网站根目录的路径,如果你的DedeCMS开启了“静态目录”,路径可能会是/html/about/。
动态链接跳转(DedeCMS核心)
这是DedeCMS模板开发中最常用也最重要的部分,用于动态生成指向内部内容的链接。

(图片来源网络,侵删)
链接到栏目/频道页
使用 {dede:type} 标签来获取当前栏目的URL。
场景:在文章页、列表页或其他页面,需要链接到它所属的栏目。
{dede:type}
<a href="[field:typelink/]">[field:typename/]</a>
{/dede:type}
代码解析:
{dede:type}...{/dede:type}:这是一个循环标签,用于获取当前文档所在的栏目信息。[field:typelink/]:输出该栏目的完整链接地址(/html/news/或/plus/list.php?tid=1)。[field:typename/]:输出该栏目的名称。
简写形式(如果只需要链接到当前顶级栏目):

(图片来源网络,侵删)
<a href="{dede:type typeid='0'}[field:typelink/]{/dede:type}">返回首页</a>
typeid='0' 表示获取当前栏目的顶级栏目。
链接到文章/内容页
使用 {dede:field} 标签来获取当前文章的URL。
场景:在文章列表页(arclist)或文章内容页(article_article)中,链接到文章详情。
在列表页 {dede:arclist} 中使用:
{dede:arclist titlelen='50' row='5'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
</li>
{/dede:arclist}
代码解析:
[field:arcurl/]:这是{dede:arclist}标签中专用的字段,用于生成每篇文章的URL,它会根据你后台的设置(静态、动态)自动生成正确的链接。 页{dede:field}中使用:** 通常用于面包屑导航,链接到当前文章。
<!-- 在文章详情页,面包屑可能这样写: -->
您现在的位置:<a href="{dede:global.cfg_basehost/}/">首页</a> > {dede:type}<a href="[field:typelink/]">[field:typename/]</a>{/dede:type} > <a href="{dede:field name='arcurl'/}">[field:title/]</a>
{dede:field name='arcurl'/}:获取当前文章页的URL。
链接到列表页
使用 {dede:list} 标签,它和 {dede:arclist} 类似,但通常用于自定义列表模板。
{dede:list pagesize='10'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
</li>
{/dede:list}
同样,[field:arcurl/] 会生成列表中每篇文章的链接。
链接到自定义页面(单页)
DedeCMS可以创建一些独立的页面,如“联系我们”、“公司简介”等,它们通常存储在 plus 目录下。
场景:在网站的页脚或导航栏,添加这些页面的链接。
<a href="{dede:field name='phpurl'/}/contact.php">联系我们</a>
<a href="{dede:field name='phpurl'/}/about.php">公司简介</a>
代码解析:
{dede:field name='phpurl'/}:这是一个全局变量,指向DedeCMS的plus目录,使用它可以让链接更具可移植性,即使你更换了目录结构,只要plus目录名不变,链接就不会失效。contact.php:是你自定义页面的文件名。
特殊链接
网站首页链接 这是一个非常常用的链接,通常放在Logo上。
<a href="{dede:global.cfg_basehost/}/" class="logo">
<img src="/images/logo.png" alt="网站Logo">
</a>
代码解析:
{dede:global.cfg_basehost/}:获取你在后台设置的网站域名(如http://www.yoursite.com),这是最规范的首页链接写法,能自动包含协议(http/https)和域名。
会员中心链接
<a href="{dede:field name='memberurl'/}/index.php">会员中心</a>
{dede:field name='memberurl'/}:指向会员中心的目录,通常是/member/。
搜索页面链接
<form action="{dede:global.cfg_cmspath/}/search.php" method="get">
<input type="text" name="q" placeholder="输入关键词搜索">
<button type="submit">搜索</button>
</form>
{dede:global.cfg_cmspath/}:指向网站的根目录,确保search.php能被正确访问。
重要注意事项
-
静态与动态URL
- DedeCMS可以通过后台设置(“系统” -> “系统基本参数” -> “核心设置”)来决定生成静态HTML还是动态PHP页面。
- 使用模板标签(如
[field:arcurl/])的最大好处是:无论你后台如何切换,标签会自动生成正确的URL格式,你不需要手动去修改模板里的.html或.php。
-
相对路径与绝对路径
- 绝对路径:以
http://或 开头,推荐使用,尤其是在复杂的网站结构或子目录安装时,可以避免路径混乱,DedeCMS的全局变量(如{dede:global.cfg_basehost/})生成的就是绝对路径。 - 相对路径:以 或 开头,相对当前文件的位置,在简单网站中可以使用,但容易出错。
- 绝对路径:以
-
SEO优化
<a>标签中的title属性:对于SEO和用户体验非常重要,建议为所有内部链接添加title属性,描述链接内容。<a href="[field:arcurl/]" title="[field:title/] - [field:typename/]">[field:title/]</a>
总结表格
| 链接目标 | 推荐标签/代码 | 说明 |
|---|---|---|
| 外部网站 | <a href="https://www.example.com"> |
直接填写完整URL |
| 栏目页 | {dede:type}<a href="[field:typelink/]"> |
获取当前栏目的链接 |
| 文章页 | [field:arcurl/] |
在 arclist 或 list 中使用,生成文章链接 |
| 自定义页面 | {dede:field name='phpurl'}/contact.php |
链接到 plus 目录下的单页 |
| 网站首页 | {dede:global.cfg_basehost/}/ |
最规范、最推荐的首页链接 |
| 会员中心 | {dede:field name='memberurl'}/index.php |
链接到会员中心 |
| 搜索页面 | {dede:global.cfg_cmspath/}/search.php |
搜索表单的 action 路径 |
掌握以上这些方法,你就可以在DedeCMS模板中灵活地实现各种页面跳转了。优先使用DedeCMS提供的模板标签,而不是手写URL,这样可以保证网站在不同设置下都能正常工作。
