核心原理
织梦的栏目默认链接到本站内的文章列表页,要让其跳转到外部网站,我们需要修改栏目的“外部链接”属性,就是将栏目的“类型”设置为“外部链接”,并在对应的链接地址字段中填入目标网址。
后台直接修改(最推荐、最简单)
这是最直接、最标准的方法,适用于所有新添加或已存在的栏目。
操作步骤:
-
登录织梦后台 使用您的管理员账号登录到织梦网站的后台管理系统。
-
进入“栏目管理” 在左侧菜单栏中,找到并点击 【栏目管理】 -> 【核心栏目管理】。
-
选择要修改的栏目 在栏目列表中,找到您想要设置为外部链接的那个栏目,您可以点击栏目名称,或者点击该栏目行末尾的 【修改】 按钮。
-
修改关键信息 进入栏目编辑页面后,找到以下几个关键选项并进行设置:
- 栏目名称:保持不变,这就是您在导航栏上显示的名称。
- 栏目类型:这是最关键的一步!
- 默认选项:通常可能是“频道封面”或“列表”,请将其更改为 【外部链接】。
- 选择后:页面下方会出现一个新的输入框。
- 跳转网址 / 外部链接:
- 在您刚刚将“栏目类型”改为“外部链接”后,页面下方会出现一个名为 “跳转网址” 或 “外部链接” 的输入框。
- 在这个框中,完整地填入您想要跳转的外部网址。
- 注意:请务必填写完整的URL,包括
http://或https://前缀。https://www.baidu.com或http://www.qq.com。
-
保存修改 检查所有信息无误后,点击页面底部的 【确定】 或 【保存】 按钮。
-
更新缓存 为了确保修改能立即生效,建议更新一下网站缓存。
- 在后台首页,找到 【系统】 -> 【一键更新网站】。
- 在更新选项中,勾选 【更新HTML】 和 【更新栏目】(或【更新首页】),然后点击开始更新。
完成以上步骤后,您的前端导航栏中该栏目的链接就已经指向您设置的外部网站了。
通过修改模板文件实现(适用于特定场景)
在某些特殊情况下,您可能不想通过后台修改,而是希望直接控制模板文件,这种方法更灵活,但需要您具备一定的HTML和织梦标签知识。
这种方法的核心思想是:在导航栏的循环代码中,为特定栏目添加一个判断条件,如果该栏目是外部链接,则使用外部链接地址;否则,使用织梦默认的栏目链接。
操作步骤:
-
找到导航栏模板文件 织梦的导航栏通常位于网站的头部模板文件中,这个文件可能是:
/templets/default/header.htm/templets/您的模板名称/index.htm- 或者其他您自定义的头部文件。
-
定位导航循环代码 打开这个模板文件,找到生成导航菜单的代码块,它通常是这样的
channel或arclist标签循环:{dede:channel type='top' row='8'} <li><a href="[field:typelink/]">[field:typename/]</a></li> {/dede:channel}type='top'表示调用顶级栏目。[field:typelink/]是织梦默认的栏目链接标签。[field:typename/]是栏目名称标签。
-
添加条件判断 我们需要修改这个循环,让它能识别“外部链接”,织梦的栏目信息中,有一个
ispart字段,当栏目类型为“外部链接”时,ispart的值通常是1,我们可以利用这一点进行判断。修改后的代码如下:
{dede:channel type='top' row='8'} <li> <a href="{dede:field name='ispart' runphp='yes'} @me = (@me == 1) ? '{dede:field name='typedir'/}' : '{dede:field name='typelink'/}'; if(@me == '{dede:field name='typedir'/}'){ @me = 'javascript:void(0);'; // 如果是外部链接,先给一个空链接,防止页面跳转 } {/dede:field}"> [field:typename/] </a> </li> {/dede:channel}上面的代码比较复杂,有更简单直观的写法:
{dede:channel type='top' row='8'} <li> <a href="[field:typelink/]" {dede:field.name='ispart' runphp='yes'}if(@me==1) {@me='target="_blank" rel="noopener noreferrer"';}else{@me='';}{/dede:field}> [field:typename/] </a> </li> {/dede:channel}这种写法的解释:
[field:typelink/]仍然保留,这样后台设置为外部链接时,它会自动读取“跳转网址”。{dede:field.name='ispart' runphp='yes'}...{/dede:field}是一个条件判断。if(@me==1):判断ispart字段是否为1(即是否为外部链接)。- 如果是
1,就在<a>标签里添加target="_blank" rel="noopener noreferrer"属性(推荐在新窗口打开,并增强安全性)。 - 如果不是
1,则不添加任何属性。
-
保存文件并更新 保存修改后的模板文件,然后到后台 【生成】 -> 【更新HTML】,更新首页和栏目页。
重要注意事项
- 安全第一:在后台修改时,请确保您填写的网址是安全可信的,不要轻易添加恶意网站。
target="_blank"的重要性:如果您的网站链接到外部网站,强烈建议在新标签页中打开,以免用户误以为还在您的网站上,这可以通过在链接中添加target="_blank"属性实现,方法二中的代码已经包含了这一点。rel="noopener noreferrer":这是一个安全最佳实践。noopener可以防止新打开的页面通过window.opener来控制您的原始页面,noreferrer则不告诉目标页面是从哪个页面链接过来的,这有助于提升安全性。- 缓存问题:修改后台栏目后,如果导航没有立即更新,请务必执行“一键更新网站”操作,特别是更新栏目和首页。
- 权限问题:确保您有修改栏目和模板文件的权限。
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 后台修改 | 操作简单,官方标准,安全可靠 | 灵活性稍差 | 绝大多数情况下的首选,特别是对普通用户和网站管理员。 |
| 修改模板 | 灵活性高,可自定义样式和行为 | 需要一定的技术基础,修改不当可能导致页面错乱 | 需要对特定外部链接进行特殊样式处理或复杂逻辑控制的场景。 |
对于99%的需求,方法一 已经完全足够且是最好的选择,请优先使用它。
