通过后台“导航栏”设置(最常用、最推荐)
这种方法的核心是利用织梦后台的“导航栏”功能,它直观且无需修改代码。

第1步:登录织梦后台
使用您的管理员账号登录织梦网站的后台管理系统。
第2步:进入“导航栏”管理
在左侧菜单栏中,找到并点击 【核心】 -> 【频道管理】 -> 【导航栏管理】。
第3步:添加新的导航链接
在导航栏管理页面,点击右上角的 【增加一个导航】 按钮。
在弹出的表单中填写以下信息:

- 导航名称:您希望在网站上显示的文字,访问官网”或“联系我们”。
- 导航网址:您要跳转的外部链接地址,
https://www.dedecms.com或https://www.baidu.com。请务必填写完整的URL,包括http://或https://。 - 导航类型:选择“外部链接”,这是最关键的一步,它告诉织梦这个链接不是站内的栏目。
- 新窗口打开:勾选此项,勾选后,织梦会自动为这个链接添加
target="_blank"属性,实现新窗口打开。
填写完毕后,点击 【确定】 保存。
第4步:更新网站缓存
保存成功后,系统会提示“成功增加一个导航条目”,新的导航可能不会立刻显示在网站上,您需要:
- 方法A(推荐):在后台首页点击右上角的 【更新系统缓存】 按钮。
- 方法B:进入【系统】->【系统基本参数】->【性能选项】,点击“更新系统缓存”。
更新缓存后,刷新您的网站首页,新的导航链接就会出现在您指定的位置,并且点击时会在新标签页中打开。
修改模板文件(适用于更复杂的需求)
如果您对模板文件有更精细的控制需求,或者想通过代码直接实现,可以修改模板文件。

第1步:找到并打开模板文件
织梦的导航菜单通常由一个模板文件控制,这个文件一般位于您的模板目录下,路径通常是:
/templets/您的模板名称/
请找到名为 head.htm 或 header.htm 的文件(具体名称取决于您的模板),用代码编辑器(如 VS Code、Sublime Text 或 Dreamweaver)打开它。
第2步:定位导航菜单的代码块
在 head.htm 文件中,找到调用导航栏的代码,它通常是这样的:
{dede:channel type='top' row='8'}
<li><a href='[field:typeurl/]'>[field:typename/]</a></li>
{/dede:channel}
或者更复杂的结构:
{dede:channelartlist typeid='top' row='1'}
<div class="nav">
{dede:channel type='top'}
<li><a href='[field:typeurl/]'>[field:typename/]</a></li>
{/dede:channel}
</div>
{/dede:channelartlist}
第3步:修改代码以支持外链和新窗口打开
默认的 {dede:channel} 标签无法直接判断是否为外部链接,我们需要进行一些修改。
方案A:使用 runphp='yes' 进行判断(推荐)
这是最灵活的方法,可以自动判断链接是否为外部链接,如果是则自动添加 target="_blank"。
将原来的 {dede:channel} 标签块修改为以下代码:
{dede:channel type='top' row='8' currentstyle="<li class='active'><a href='~typelink~'>~typename~</a></li>"}
<li>
<a href="[field:typeurl/]" [field:isaddtarget/]>[field:typename/]</a>
</li>
{/dede:channel}
在您的模板文件 head.htm 的顶部({dede:config} 标签之后),添加以下PHP代码:
{dede:config}
...
{/dede:config}
{dede:php}
function isAddTarget($typeid, $typelink, $typename)
{
// 获取当前栏目的信息
$typeinfo = GetOneType($typeid);
// 检查链接是否以 http:// 或 https:// 开头
if (strpos($typelink, 'http://') === 0 || strpos($typelink, 'https://') === 0) {
// 如果是外部链接,返回 target="_blank"
return ' target="_blank"';
} else {
// 如果是内部链接,返回空
return '';
}
}
// 将函数注册到织梦标签
$isaddtarget = 'isAddTarget';
{/dede:php}
代码解释:
- 我们修改了
{dede:channel}标签,在<a>标签中增加了一个自定义属性[field:isaddtarget/]。 - 通过
{dede:php}标签我们定义了一个isAddTarget函数。 - 这个函数会检查链接地址 (
$typelink) 是否包含http://或https://。 - 如果是,函数会返回
target="_blank",否则返回空字符串。 - 我们将这个函数注册给了织梦的标签系统,
[field:isaddtarget/]就会调用这个函数并返回结果。
这样,所有外部链接都会自动加上 target="_blank" 属性。
方案B:手动为特定链接添加(简单直接)
如果您只是想给某一个特定的链接添加新窗口打开,而不是所有外部链接,可以直接在模板文件中修改。
找到对应的 <a> 标签,直接在 href 属性后面添加 target="_blank" 即可。
<!-- 原始代码 --> <a href='https://www.example.com'>访问官网</a> <!-- 修改后 --> <a href='https://www.example.com' target="_blank">访问官网</a>
注意:这种方法是硬编码,如果您需要在后台动态修改这个链接,就需要再次编辑模板文件,不如方法一灵活。
总结与建议
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 后台设置 | 操作简单,无需代码,符合织梦后台管理逻辑 | 功能相对固定,灵活性稍差 | 绝大多数情况下的首选,特别是给客户使用时。 |
| 模板修改 | 功能强大,灵活,可自定义判断逻辑 | 需要修改代码,有一定门槛,升级模板时可能被覆盖 | 需要复杂逻辑(如自动识别所有外链)或对现有模板有深度定制需求时。 |
对于绝大多数用户,强烈推荐使用方法一,它是最简单、最安全、最符合织梦CMS使用习惯的方式。
