You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenCart 3.0.3.7如何修改分类URL实现自定义跳转

OpenCart修改分类跳转URL操作指南

以下两种方案可实现自定义分类跳转链接的需求,可根据你的使用场景选择:

方案1:直接修改menu.twig模板(快速生效,适合固定分类场景)

这是最适配你当前需求的方案,直接修改你提供的menu.twig代码即可,操作步骤如下:

  1. 进入OpenCart后台,路径为「设计 → 主题编辑器」,找到common/menu.twig文件;也可通过FTP直接修改站点目录下catalog/view/theme/[你的主题名]/template/common/menu.twig文件
  2. 将原有代码替换为下方修改后的代码,可直接适配你当前的4个分类跳转需求:
{% if categories %}
<div class="container">
  <nav id="menu" class="navbar">
    <div class="navbar-header"><span id="category" class="visible-xs">{{ text_category }}</span>
      <button type="button" class="btn btn-navbar navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse"><i class="fa fa-bars"></i></button>
    </div>
    <div class="collapse navbar-collapse navbar-ex1-collapse">
      <ul class="nav navbar-nav">
        {% for category in categories %}
        {# 自定义分类跳转逻辑 - 可根据需求增删判断条件 #}
        {% set output_href = category.href %}
        {% if category.name == 'Home' %}
          {% set output_href = home %}
        {% elseif category.name == 'About' %}
          {# 可替换为你实际的About页路由/完整链接 #}
          {% set output_href = 'index.php?route=information/information&information_id=4' %}
        {% elseif category.name == 'Contact' %}
          {% set output_href = contact %}
        {% elseif category.name == 'Shop' %}
          {# 可替换为你需要的Shop分类跳转地址 #}
          {% set output_href = '你的Shop页对应链接' %}
        {% endif %}
        {# 自定义逻辑结束 #}
        {% if category.children %}
        <li class="dropdown"><a href="{{ output_href }}" class="dropdown-toggle" data-toggle="dropdown">{{ category.name }}</a>
          <div class="dropdown-menu">
            <div class="dropdown-inner"> {% for children in category.children|batch(category.children|length / category.column|round(1, 'ceil')) %}
              <ul class="list-unstyled">
                {% for child in children %}
                <li><a href="{{ child.href }}">{{ child.name }}</a></li>
                {% endfor %}
              </ul>
              {% endfor %}</div>
            <a href="{{ output_href }}" class="see-all">{{ text_all }} {{ category.name }}</a> </div>
        </li>
        {% else %}
        <li><a href="{{ output_href }}">{{ category.name }}</a></li>
        {% endif %}
        {% endfor %}
      </ul>
    </div>
  </nav>
</div>
{% endif %}
  1. 代码说明:
  • 这里直接使用OpenCart原生全局变量home、contact作为跳转地址,无需硬写域名,更换站点域名也不需要修改代码
  • 如果你是多语言站点,建议使用分类ID作为判断条件,避免不同语言下分类名称不一致导致判断失效,示例:{% if category.category_id == '2' %},分类ID可在后台分类列表中查看
  1. 修改完成后保存文件,进入OpenCart后台「系统 → 维护 → 缓存管理」清除所有缓存,刷新前端即可生效

方案2:修改分类管理逻辑(适合需后台灵活配置的场景)

如果后续需要经常调整分类跳转地址,不想每次修改模板代码,可以选择此方案:

  • 给分类数据表增加custom_redirect_url字段,用于存储自定义跳转地址
  • 修改后台分类编辑页面,新增该字段的输入框
  • 修改catalog/controller/common/menu.php中的分类查询逻辑,读取该字段值,若存在自定义地址则覆盖原分类的href属性,不存在则使用原分类地址
    该方案无需修改前端模板,所有配置可直接在后台完成,适合多站点、运营人员频繁调整跳转规则的场景

注意事项

  • 所有修改操作前请提前备份原文件和数据库,避免修改错误无法回滚
  • 若站点使用CDN或主题自带缓存,修改后需同步清除对应缓存才能看到效果

内容的提问来源于stack exchange,提问作者mmm000

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 03:36:04