【问题标题】:How to ad different navigation menus to shopify Debut theme?如何为 shopify Debut 主题添加不同的导航菜单?
【发布时间】:2021-02-15 22:10:52
【问题描述】:

所以我正在尝试为不同的客户创建不同的导航菜单。因此,当我在 shopify 中给客户一个特定标签(例如批发)时,他会看到比其他访问者另一个菜单栏。这只有在他登录帐户后才会发生。

现在我试图找到以下sn-p: {% for link in linklists.main-menu.links %}

用以下代码替换它:

{% assign menu_handle = 'main-menu' %}
{% if customer %} 
{% if customer.tags contains 'wholesale' %} 
{% assign menu_handle = 'main-menu-wholesale' %} 
{% endif %} 
{% endif %} 
{% for link in linklists[menu_handle].links %}

但我在首次亮相的代码中找不到如下所示的 sn-p:

{% comment %}
Renders a list of menu items
Accepts:
- linklist: {Object} Linklist Liquid object (required)
- wrapper_class: {String} CSS wrapper class for the navigation (optional)

Usage:
{% include 'site-nav', linklist: section.settings.main_linklist, wrapper_class: 'site-nav--centered' %}
{% endcomment %}
<ul class="site-nav list--inline{% if wrapper_class != blank %} {{ wrapper_class }}{% endif %}" id="SiteNav">
{% for link in linklists[linklist].links %}
{%- assign child_list_handle = link.title | handleize -%}

{% comment %}
  Check if third-level nav exists on each parent link.
{% endcomment %}
{%- assign three_level_nav = false -%}
{% if link.links != blank %}
  {% if link.levels == 2 %}
    {%- assign three_level_nav = true -%}
  {% endif %}
{% endif %}

{% if link.links != blank %}
  <li class="site-nav--has-dropdown{% if three_level_nav %} site-nav--has-centered-dropdown{% endif %}{% if link.active %} site-nav--active{% endif %}" data-has-dropdowns>
    <button class="site-nav__link site-nav__link--main site-nav__link--button{% if link.child_active %} site-nav__link--active{% endif %}" type="button" aria-expanded="false" aria-controls="SiteNavLabel-{{ child_list_handle }}">
      <span class="site-nav__label">{{ link.title | escape }}</span>{% include 'icon-chevron-down' %}
    </button>

    <div class="site-nav__dropdown{% if three_level_nav %} site-nav__dropdown--centered{% endif %} critical-hidden" id="SiteNavLabel-{{ child_list_handle }}">
      {% if three_level_nav %}
        <div class="site-nav__childlist">
          <ul class="site-nav__childlist-grid">
            {% if link.links != blank %}
              {% for childlink in link.links %}
                <li class="site-nav__childlist-item">
                  <a href="{{ childlink.url }}"
                    class="site-nav__link site-nav__child-link site-nav__child-link--parent"
                    {% if childlink.current %} aria-current="page"{% endif %}
                  >
                    <span class="site-nav__label">{{ childlink.title | escape }}</span>
                  </a>

                  {% if childlink.links != blank %}
                    <ul>
                    {% for grandchildlink in childlink.links %}
                      <li>
                        <a href="{{ grandchildlink.url }}"
                        class="site-nav__link site-nav__child-link"
                        {% if grandchildlink.current %} aria-current="page"{% endif %}
                      >
                          <span class="site-nav__label">{{ grandchildlink.title | escape }}</span>
                        </a>
                      </li>
                    {% endfor %}
                    </ul>
                  {% endif %}

                </li>
              {% endfor %}
            {% endif %}
          </ul>
        </div>

      {% else %}
        <ul>
          {% for childlink in link.links %}
            <li>
              <a href="{{ childlink.url }}"
              class="site-nav__link site-nav__child-link{% if forloop.last %} site-nav__link--last{% endif %}"
              {% if childlink.current %} aria-current="page"{% endif %}
            >
                <span class="site-nav__label">{{ childlink.title | escape }}</span>
              </a>
            </li>
          {% endfor %}
        </ul>
      {% endif %}
    </div>
  </li>
{% else %}
  <li {% if link.active %} class="site-nav--active"{% endif %}>
    <a href="{{ link.url }}"
      class="site-nav__link site-nav__link--main{% if link.active %} site-nav__link--active{% endif %}"
      {% if link.current %} aria-current="page"{% endif %}
    >
      <span class="site-nav__label">{{ link.title | escape }}</span>
    </a>
  </li>
{% endif %}
{% endfor %}
</ul>

还有其他方法可以将此代码 sn-p 添加到首发代码中吗?这段代码会是什么样子?

感谢每一个提示!

【问题讨论】:

    标签: html shopify liquid nav


    【解决方案1】:

    我想你需要找到这个{% include 'site-nav', linklist: section.settings.main_linklist, wrapper_class: 'site-nav--centered' %}的代码

    更改后,您的代码看起来像

    {% assign menu_handle = 'main-menu' %}
    {% if customer %} 
      {% if customer.tags contains 'wholesale' %} 
        {% assign menu_handle = 'main-menu-wholesale' %} 
      {% endif %} 
    {% endif %} 
    
    {% include 'site-nav', linklist: menu_handle, wrapper_class: 'site-nav--centered' %}
    

    更新:在这里,我将菜单列表更改为首次亮相的主题最新版本。

    1. header.liquid 文件中,如果客户登录并且标签包含wholesale,我已经进行了更新并添加了检查客户和客户标签的sn-ps。

    2. 注册为新用户并从管理员后台将标签wholesale 分配给新用户帐户。

    3. 这里是非登录用户的前端,并以批发标记客户的身份登录。

    【讨论】:

    • 这是过去也回答过的类似问题stackoverflow.com/questions/65253679/…
    • 感谢@Onkar。我用你建议的 sn-p 替换了代码。没有故障,但我登录后菜单不会改变。还有什么我可以做的吗?
    • 你在使用网站上的首发主题吗?
    • 更新答案,希望对你有帮助。
    • 非常感谢,你为我节省了很多时间
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-29
    • 1970-01-01
    • 2021-04-27
    • 2021-08-10
    • 2020-09-06
    相关资源
    最近更新 更多