织梦导航栏目如何正确加nofollow?

99ANYc3cd6
预计阅读时长 15 分钟
位置: 首页 织梦建站 正文

直接修改模板文件(最推荐、最灵活)

这是最直接、最常用的方法,适用于所有织梦版本,通过修改导航栏的模板文件,直接在 <a> 标签中添加 rel="nofollow" 属性。

织梦导航栏目如何加nofollow
(图片来源网络,侵删)

操作步骤:

  1. 找到导航模板文件 织梦的导航栏通常由一个核心模板文件控制,这个文件通常位于你的模板目录下,路径为: /templets/你的模板名//templets/default/

    在这个目录下,寻找名为 nav_default.htmchannelnav.htm 的文件。nav_default.htm 是最常见、最标准的导航模板文件名。

  2. 编辑模板文件 使用FTP工具或你的主机控制面板中的文件管理器,找到并下载 nav_default.htm 文件,然后用代码编辑器(如 VS Code, Sublime Text, Notepad++)打开它。

    织梦导航栏目如何加nofollow
    (图片来源网络,侵删)
  3. 定位并修改循环代码 在文件中,你会找到一个循环输出栏目的代码块,通常是这样的结构:

    {dede:channel type='top' row='8'}
    <li><a href='{dede:field.typeurl/}' target="_blank">{dede:field.name/}</a></li>
    {/dede:channel}

    我们的目标就是修改 <a>

  4. 添加 nofollow 属性 你有两种添加方式,推荐使用 CSS 类选择器 的方式,因为它更灵活,方便后续通过CSS控制样式。

    • 方式A:直接添加 rel 属性

      {dede:channel type='top' row='8'}
      <li><a href='{dede:field.typeurl/}' rel="nofollow" target="_blank">{dede:field.name/}</a></li>
      {/dede:channel}

      这种方法会把所有顶级导航都加上 nofollow,通常不是我们想要的。

      织梦导航栏目如何加nofollow
      (图片来源网络,侵删)
    • 方式B:使用 if 条件判断,为特定栏目添加(推荐) 这是最灵活的方法,你可以只给指定的栏目(如“关于我们”)添加 nofollow,织梦的标签支持 if 判断。

      {dede:channel type='top' row='8'}
      <li>
          <a href='{dede:field.typeurl/}' 
             <!-- 使用 if 条件判断,如果栏目ID是1,则添加nofollow -->
             [field:id runphp='yes']if(@me == '1')@me=' rel="nofollow"';else @me='';[/field:id]
             target="_blank">
             {dede:field.name/}
          </a>
      </li>
      {/dede:channel}

      代码解释:

      • [field:id runphp='yes']...[/field:id]:这是一个在循环中获取当前栏目ID并执行PHP代码的写法。
      • if(@me == '1'):判断当前栏目的ID(@me 变量代表当前字段的值)是否为 1请将 '1' 替换为你想要添加 nofollow 的那个栏目的实际ID。
      • @me=' rel="nofollow"';:如果条件成立(ID匹配),就给 @me 赋值 rel="nofollow",这个值会插入到 a 标签中。
      • else @me='';:如果不成立,就赋一个空值,不添加任何属性。
  5. 上传并更新缓存 保存修改后的 nav_default.htm 文件,通过FTP上传回原来的位置,然后登录织梦后台,点击 “生成” -> “更新主页HTML”“更新栏目HTML”,让修改生效。


通过修改织PHP源码(一劳永逸,但需谨慎)

如果你希望所有通过 {dede:channel} 标签生成的链接都默认带 nofollow,可以修改织梦的源码文件。注意:升级织梦版本后,此修改可能会被覆盖。

操作步骤:

  1. 找到源码文件 这个文件位于织梦程序的根目录下,路径是: /include/taglib/channel.lib.php

  2. 编辑源码文件 用代码编辑器打开 channel.lib.php 文件。

  3. 定位并修改代码 搜索 return $linkType; 这行代码,通常在文件的最后部分,在这行代码之前,找到生成 <a> 标签的代码,它看起来像这样:

    $linkstr = "<a href='".$typeurl."'".$target.">".$typename."</a>";

    将其修改为:

    $linkstr = "<a href='".$typeurl."'".$target." rel='nofollow'>".$typename."</a>";

    这样,所有使用 {dede:channel} 标签生成的链接都会被加上 rel="nofollow"

  4. 更新缓存 同样,修改后需要在后台更新缓存或重新生成页面才能看到效果。


使用JS动态添加(前端实现,不影响后端)

这种方法不修改织梦的任何文件,而是通过在前端页面加载一段JavaScript代码,来动态地为指定的导航链接添加 nofollow 属性。

操作步骤:

  1. 在模板中添加JS代码 在你的网站首页模板文件(通常是 /templets/你的模板名/index.htm)的 <head> 标签内或页面底部 </body> 标签前,添加如下JS代码:

    <script>
    document.addEventListener('DOMContentLoaded', function() {
      // 获取所有导航链接
      const navLinks = document.querySelectorAll('.nav a'); // 假设你的导航菜单有 class="nav"
      // 定义你想要添加nofollow的栏目名称
      const nofollowNames = ['关于我们', '联系我们', '版权声明', '网站地图'];
      navLinks.forEach(link => {
        const linkText = link.textContent.trim();
        // 如果链接文本在 nofollowNames 列表中,则添加 rel="nofollow"
        if (nofollowNames.includes(linkText)) {
          link.setAttribute('rel', 'nofollow');
        }
      });
    });
    </script>

    代码解释:

    • document.querySelectorAll('.nav a'):选择所有类名为 nav 的容器下的 <a> 标签。请根据你网站的实际HTML结构修改选择器(如 #mainnav a)。
    • nofollowNames = [...]:在这个数组中填入你想要添加 nofollow 的导航栏目的文字,而不是ID。
    • link.setAttribute('rel', 'nofollow'):为匹配的链接添加 rel="nofollow" 属性。
  2. 保存并更新 保存模板文件,并在后台重新生成首页即可。


总结与推荐

方法 优点 缺点 适用场景
修改模板 最推荐,灵活、直观、只影响特定栏目,升级不受影响。 需要手动操作,模板文件路径可能因模板不同而异。 绝大多数情况,特别是只需要给少数几个栏目加 nofollow 时。
修改源码 一劳永逸,对所有 {dede:channel} 生效。 有风险,升级后会被覆盖,影响所有栏目,不够灵活。 确定所有栏目都需要 nofollow,且不打算升级织梦版本。
JS动态添加 不修改后端文件,方便测试和移除。 依赖JS,如果用户禁用JS则无效,可能对SEO有轻微延迟。 快速测试,或者不希望修改任何后端文件时。

对于99%方法一(修改模板文件) 是最佳选择,它既安全又灵活,完全能满足SEO优化的需求。

-- 展开阅读全文 --
头像
C语言double类型printf输出格式是什么?
« 上一篇 昨天
dede采集网页没反应怎么办?
下一篇 » 昨天

相关文章

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