dede导航怎么加nofollow?

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

后台直接修改(最简单,推荐)

这是最直接、最简单的方法,适合所有DedeCMS版本。

dede 如何给导航加nofollow
(图片来源网络,侵删)
  1. 登录后台:使用管理员账号登录您的DedeCMS后台。

  2. 进入栏目管理:在左侧菜单栏中,找到 【核心】 -> 【栏目管理】

  3. 找到目标栏目:在栏目列表中,找到您想要添加 nofollow 属性的那个顶级栏目(关于我们”)。

  4. 编辑栏目:将鼠标移动到该栏目名称上,点击右侧出现的 【更改】【编辑】 按钮。

    dede 如何给导航加nofollow
    (图片来源网络,侵删)
  5. 修改栏目属性:在弹出的栏目编辑页面中,找到 “栏目属性”“栏目选项” 这一项,通常它是一个下拉选择框,里面有多个选项,

    • 频道封面
    • 列表栏目
    • 外部链接
    • 单页文档
  6. 添加自定义属性:默认的选项里可能没有 nofollow,您需要 在现有选项的后面手动添加 ,nofollow

    • 例如:如果原来的值是 列表栏目,您就把它修改为 列表栏目,nofollow
    • 例如:如果原来是 单页文档,就修改为 单页文档,nofollow
  7. 保存:点击页面底部的 【确定】【保存】 按钮即可。

原理:DedeCMS在生成栏目链接时,会读取 栏目属性 这个字段,虽然这个字段本身不是为 nofollow 设计的,但DedeCMS的标签 {dede:field.typeurl/} 或其他相关链接生成函数,会检查这个字段是否包含 nofollow 关键字,如果包含,就会自动将其输出为链接的 rel="nofollow" 属性。

dede 如何给导航加nofollow
(图片来源网络,侵删)

修改模板文件(更灵活,适合开发者)

如果您想一次性为所有符合某个条件的栏目(比如所有单页栏目)都加上 nofollow,或者对现有模板进行深度修改,可以直接修改模板文件。

  1. 找到导航模板文件

    • 默认情况下,网站的主导航模板文件位于 /templets/default/ 目录下。
    • 最常见的文件名是 header.htm,因为导航通常位于网站的头部。
    • 如果您使用了自定义模板,请找到您当前正在使用的模板目录。
  2. 定位导航代码:打开 header.htm 文件,找到生成导航的代码块,通常是这样的 channelartlistchannel

    • 示例1:使用 channelartlist 标签(常见于顶级导航)

      <div id="navMenu">
      {dede:channelartlist typeid='top' row='8'}
        <a href="{dede:field.typeurl/}" title="{dede:field name='typename'/}">{dede:field name='typename'/}</a>
      {/dede:channelartlist}
      </div>
    • 示例2:使用 channel

      <div id="navMenu">
      {dede:channel type='top' row='8'}
        <a href="[field:typeurl/]" title="[field:typename/]">[field:typename/]</a>
      {/dede:channel}
      </div>
  3. 修改链接标签,添加 nofollow: 您可以直接在 <a> 标签中手动添加 rel="nofollow"

    • 修改后的 channelartlist 代码:

      <div id="navMenu">
      {dede:channelartlist typeid='top' row='8'}
        <!-- 使用 runphp='yes' 来判断栏目属性,更灵活 -->
        <a href="{dede:field.typeurl/}" title="{dede:field name='typename'/}" 
           {dede:field name='typeid' runphp='yes'}
           global $dsql;
           $row = $dsql->GetOne("SELECT `issend` FROM `dede_arctype` WHERE `id` = @me");
           if ($row['issend'] == -1) {
               @me = ' rel="nofollow"';
           } else {
               @me = '';
           }
           {/dede:field}>
           {dede:field name='typename'/}
        </a>
      {/dede:channelartlist}
      </div>
    • 更简单的手动添加方法(推荐用于少量修改): 如果您只是想给固定的几个栏目加,可以直接修改HTML。

      <div id="navMenu">
      {dede:channel type='top' row='8'}
        <a href="[field:typeurl/]" title="[field:typename/]" [field:rel/]>[field:typename/]</a>
      {/dede:channel}
      </div>

      然后在后台栏目管理中,按照 方法一 的方式,为需要 nofollow 的栏目在“栏目属性”里加上 ,nofollow,DedeCMS会自动将这个值赋给 [field:rel/]


修改PHP源码(一劳永逸,但有一定风险)

此方法适合不希望每次修改栏目都去后台操作的站长,可以一次性为所有“外部链接”或“单页文档”类型的栏目自动加上 nofollow

警告:修改核心文件有风险,操作前请务必备份原文件!

  1. 找到并打开文件: 文件路径为 /include/taglib/channel.lib.php

  2. 定位代码:在文件中找到 function lib_channel 这个函数,然后找到 $linkTypeUrl 这一行,它负责生成URL。

  3. 修改代码:找到类似下面的代码行(不同版本可能略有差异):

    // 大约在第60行左右
    $linkTypeUrl = GetOneTypeUrlA($typeinfos);
  4. 在其后添加判断逻辑:在这行代码后面,添加 if 判断,来为特定类型的栏目添加 nofollow 属性。

    • 场景A:为所有“外部链接”类型的栏目添加 nofollow

      // 在 $linkTypeUrl = GetOneTypeUrlA($typeinfos); 后面添加
      if ($typeinfos['ispart'] == 2) { // ispart == 2 代表是外部链接
        $linkTypeUrl .= ' rel="nofollow"';
      }
    • 场景B:为所有“单页文档”类型的栏目添加 nofollow

      // 在 $linkTypeUrl = GetOneTypeUrlA($typeinfos); 后面添加
      if ($typeinfos['ispart'] == 1 && $typeinfos['channeltype'] == -1) { // ispart == 1 且 channeltype == -1 代表是单页文档
        $linkTypeUrl .= ' rel="nofollow"';
      }
  5. 保存文件:保存修改后的 channel.lib.php 文件,然后刷新网站前台,查看效果。


总结与推荐

方法 优点 缺点 适用场景
后台修改 简单、安全、无需代码知识 每个栏目都要单独修改,效率低 修改少量、特定的导航链接
修改模板 灵活、可批量控制、不修改核心 需要一定的模板和标签知识 需要根据栏目类型(如所有单页)统一控制
修改源码 一劳永逸、自动化 有风险、升级会覆盖、需要PHP知识 网站管理员熟悉代码,且需要长期自动化处理

对于绝大多数用户,我强烈推荐使用【方法一:后台直接修改】,因为它最简单、最安全,且效果立竿见影,只有在需要批量处理或追求更高自动化程度时,才考虑使用方法二或方法三。

-- 展开阅读全文 --
头像
你必须知道的495个C语言问题有哪些核心考点?
« 上一篇 12-05
织梦列表分页option下拉跳转框如何实现?
下一篇 » 12-05

相关文章

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