菜鸟科技网

dede导航怎么加nofollow?

在DEDECMS(织梦内容管理系统)中,为导航链接添加nofollow属性是优化网站SEO的常见操作,可以通过修改模板文件、使用SQL语句或调用自定义函数实现,以下是具体操作步骤和注意事项,帮助您顺利完成设置。

dede导航怎么加nofollow?-图1
(图片来源网络,侵删)

通过修改模板文件添加nofollow

  1. 定位导航模板文件
    登录DEDECMS后台,进入“模板”>“默认模板管理”,找到当前使用的导航模板文件,通常位于templets/default/目录下,文件名可能是head.htmnav.htm或自定义名称,点击“编辑”进入代码界面。

  2. 修改导航标签代码
    导航调用一般使用{dede:channel}{dede:channelartlist}标签,以{dede:channel}为例,找到类似以下代码:

    {dede:channel type='top' row='8'}
    <a href='[field:typeurl/]'>[field:typename/]</a>
    {/dede:channel}

    <a>标签中添加rel='nofollow'属性,修改为:

    <a href='[field:typeurl/]' rel='nofollow'>[field:typename/]</a>

    若需针对特定栏目添加nofollow,可通过typeid属性筛选,

    dede导航怎么加nofollow?-图2
    (图片来源网络,侵删)
    {dede:channel typeid='3,5,7' row='8'}
    <a href='[field:typeurl/]' rel='nofollow'>[field:typename/]</a>
    {/dede:channel}
  3. 更新模板并生成HTML
    保存模板文件后,进入“系统”>“一键更新网站”>“更新HTML”,勾选“主页”和“栏目页”并执行,使修改生效。

通过SQL数据库批量添加nofollow

若需为现有导航链接批量添加nofollow,可通过数据库操作实现:

  1. 进入DEDECMS后台“系统”>“SQL命令行工具”。
  2. 执行以下SQL语句(需根据表前缀调整,默认为dede_):
    UPDATE dede_arctype SET typename=REPLACE(typename, '<a href=', '<a rel="nofollow" href=');

    此语句会替换所有栏目名称中的<a href=<a rel="nofollow" href=,但需注意避免重复添加,更推荐的方式是修改模板文件后重新生成。

使用自定义函数实现动态控制

若需根据栏目层级或其他条件动态添加nofollow,可自定义函数:

dede导航怎么加nofollow?-图3
(图片来源网络,侵删)
  1. include/common.func.php文件末尾添加以下函数:
    function getNoFollow($typeid) {
        $topid = GetTopid($typeid); // 获取顶级栏目ID
        if ($topid == 1) { // 假设顶级栏目ID为1时添加nofollow
            return ' rel="nofollow"';
        }
        return '';
    }
  2. 在导航模板中调用函数:
    {dede:channel type='top'}
    <a href='[field:typeurl/]'<?php echo getNoFollow(@me['id']); ?>>[field:typename/]</a>
    {/dede:channel}

注意事项

  1. 优先级问题:若模板中同时存在rel='nofollow'{dede:field}等标签的属性,需确保代码顺序正确,避免冲突。
  2. 缓存清理:修改后若未生效,可清除浏览器缓存或进入“系统”>“清除所有HTML缓存”。
  3. 测试验证:使用浏览器开发者工具(F12)检查导航链接的HTML源码,确认rel='nofollow'是否正确添加。

不同导航场景的适用方法对比

场景 推荐方法 优点 缺点
全站导航统一添加 修改模板文件 操作简单,适合全局控制 无法单独设置特定栏目
特定栏目导航添加 模板标签typeid筛选 精准控制目标栏目 需提前明确栏目ID
大量历史数据批量修改 SQL数据库操作 高效处理旧数据 风险较高,需提前备份数据库
动态条件(如层级)添加 自定义函数 灵活支持复杂逻辑 需一定PHP基础,调试较复杂

相关问答FAQs

问题1:修改模板后导航仍显示nofollow,但未生效怎么办?
解答:首先检查模板文件是否正确保存,并进入“系统”>“一键更新网站”重新生成HTML,若问题依旧,可能是浏览器缓存导致,尝试无痕模式访问或清除缓存,确认rel='nofollow'属性是否正确添加到<a>标签内,而非其他标签。

问题2:如何仅对二级栏目导航添加nofollow,保留一级栏目?
解答:可通过{dede:channelartlist}标签结合reid属性实现,在模板中使用以下代码:

{dede:channelartlist typeid='1'} <!-- 顶级栏目ID为1 -->
<div class="nav">
  <a href='{dede:field name='typeurl'/}'>{dede:field name='typename'/}</a> <!-- 一级栏目不加nofollow -->
  {dede:channel type='son' noself='yes'}
  <a href='[field:typeurl/]' rel='nofollow'>[field:typename/]</a> <!-- 二级栏目加nofollow -->
  {/dede:channel}
</div>
{/dede:channelartlist}

此方法会调用指定顶级栏目下的所有二级子栏目,并为这些子栏目链接添加nofollow属性。

分享:
扫描分享到社交APP
上一篇
下一篇