shopify自定义头部导航
默认调用标签
{%- liquid
if section.settings.menu != blank
if section.settings.menu_type_desktop == 'dropdown'
render 'header-dropdown-menu'
elsif section.settings.menu_type_desktop != 'drawer'
render 'header-mega-menu'
endif
endif
%}
前端效果如下
<nav class="header__inline-menu">
<ul class="list-menu list-menu--inline" role="list"><li><header-menu>
<details id="Details-HeaderMenu-1" class="mega-menu">
<summary id="HeaderMenu-products" class="header__menu-item list-menu__item link focus-inset" role="button" aria-expanded="false" aria-controls="MegaMenu-Content-1">
<span class="header__active-menu-item">Products</span>
<svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
</path></svg>
</summary>
<div id="MegaMenu-Content-1" class="mega-menu__content color-scheme-66d7f298-aeef-43e2-9212-1d262cd03b71 gradient motion-reduce global-settings-popup" tabindex="-1">
<ul class="mega-menu__list page-width mega-menu__list--condensed" role="list"><li>
<a id="HeaderMenu-products-customized-letter-signs" href="/collections/customized-letter-signs" class="mega-menu__link mega-menu__link--level-2 link mega-menu__link--active" aria-current="page">
Customized Letter Signs
</a></li><li>
<a id="HeaderMenu-products-3d-logos-lightbox-signs" href="/collections/3d-logos-lightbox-signs" class="mega-menu__link mega-menu__link--level-2 link">
3D Logos & Lightbox Signs
</a></li><li>
<a id="HeaderMenu-products-customized-marquee-letters" href="/collections/customized-marquee-letters" class="mega-menu__link mega-menu__link--level-2 link">
Customized Marquee Letters
</a></li><li>
<a id="HeaderMenu-products-customized-neon-signs" href="/collections/customized-neon-signs" class="mega-menu__link mega-menu__link--level-2 link">
Customized Neon Signs
</a></li><li>
<a id="HeaderMenu-products-led-light-boxes-backlit-displays" href="/collections/led-light-boxes-backlit-displays" class="mega-menu__link mega-menu__link--level-2 link">
LED Light Boxes & Backlit Displays
</a></li><li>
<a id="HeaderMenu-products-customized-door-signs" href="/collections/customized-door-signs" class="mega-menu__link mega-menu__link--level-2 link">
Customized Door Signs
</a></li><li>
<a id="HeaderMenu-products-products-monthly-new" href="/collections/all" class="mega-menu__link mega-menu__link--level-2 link">
Products Monthly New
</a></li><li>
<a id="HeaderMenu-products-products-coming-soon" href="/collections/all" class="mega-menu__link mega-menu__link--level-2 link">
Products Coming Soon
</a></li><li>
<a id="HeaderMenu-products-product-featured-1" href="/collections/all" class="mega-menu__link mega-menu__link--level-2 link">
Product Featured 1
</a></li><li>
<a id="HeaderMenu-products-product-featured-2" href="/collections/all" class="mega-menu__link mega-menu__link--level-2 link">
Product Featured 2
</a></li></ul>
</div>
</details>
</header-menu></li><li><a id="HeaderMenu-buy" href="/" class="header__menu-item list-menu__item link link--text focus-inset">
<span>Buy</span>
</a></li><li><a id="HeaderMenu-explore" href="/blogs/explore" class="header__menu-item list-menu__item link link--text focus-inset">
<span>Explore</span>
</a></li><li><header-menu>
<details id="Details-HeaderMenu-4" class="mega-menu" open="">
<summary id="HeaderMenu-about" class="header__menu-item list-menu__item link focus-inset" role="button" aria-expanded="true" aria-controls="MegaMenu-Content-4">
<span>About</span>
<svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
</path></svg>
</summary>
<div id="MegaMenu-Content-4" class="mega-menu__content color-scheme-66d7f298-aeef-43e2-9212-1d262cd03b71 gradient motion-reduce global-settings-popup" tabindex="-1">
<ul class="mega-menu__list page-width mega-menu__list--condensed" role="list"><li>
<a id="HeaderMenu-about-overview" href="/pages/overview-of-lcsign" class="mega-menu__link mega-menu__link--level-2 link">
Overview
</a></li><li>
<a id="HeaderMenu-about-contact" href="/pages/contact" class="mega-menu__link mega-menu__link--level-2 link">
Contact
</a></li><li>
<a id="HeaderMenu-about-reviews" href="/pages/reviews" class="mega-menu__link mega-menu__link--level-2 link">
Reviews
</a></li><li>
<a id="HeaderMenu-about-product-gallery" href="/pages/gallery" class="mega-menu__link mega-menu__link--level-2 link">
Product Gallery
</a></li><li>
<a id="HeaderMenu-about-trade-program" href="/pages/trade-program" class="mega-menu__link mega-menu__link--level-2 link">
Trade Program
</a></li><li>
<a id="HeaderMenu-about-vr-exhibition-hall" href="/pages/vr-showroom" class="mega-menu__link mega-menu__link--level-2 link">
VR Exhibition Hall
</a></li></ul>
</div>
</details>
</header-menu></li><li><header-menu>
<details id="Details-HeaderMenu-5" class="mega-menu">
<summary id="HeaderMenu-support" class="header__menu-item list-menu__item link focus-inset" role="button" aria-expanded="false" aria-controls="MegaMenu-Content-5">
<span>Support</span>
<svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
</path></svg>
</summary>
<div id="MegaMenu-Content-5" class="mega-menu__content color-scheme-66d7f298-aeef-43e2-9212-1d262cd03b71 gradient motion-reduce global-settings-popup" tabindex="-1">
<ul class="mega-menu__list page-width mega-menu__list--condensed" role="list"><li>
<a id="HeaderMenu-support-faqs" href="/pages/faqs" class="mega-menu__link mega-menu__link--level-2 link">
FAQs
</a></li><li>
<a id="HeaderMenu-support-how-to-order" href="/pages/order-guide" class="mega-menu__link mega-menu__link--level-2 link">
How to Order
</a></li><li>
<a id="HeaderMenu-support-installation-guide" href="/pages/installation-guide" class="mega-menu__link mega-menu__link--level-2 link">
Installation Guide
</a></li><li>
<a id="HeaderMenu-support-order-status-track" href="/pages/order-track" class="mega-menu__link mega-menu__link--level-2 link">
Order Status Track
</a></li><li>
<a id="HeaderMenu-support-return-exchange" href="/pages/return-exchange-policy" class="mega-menu__link mega-menu__link--level-2 link">
Return & Exchange
</a></li><li>
<a id="HeaderMenu-support-shipping-delivery" href="/pages/shipping-delivery-policy" class="mega-menu__link mega-menu__link--level-2 link">
Shipping & Delivery
</a></li></ul>
</div>
</details>
</header-menu></li></ul>
</nav>
改成这个
<nav class="header__inline-menu">
<ul class="list-menu list-menu--inline" role="list">
{%- for item in linklists.main-menu.links -%}
<li>
{%- if item.links.size > 0 -%}
<header-menu>
<details id="Details-HeaderMenu-{{ forloop.index }}" class="mega-menu">
<summary id="HeaderMenu-{{ item.title | handleize }}" class="header__menu-item list-menu__item link focus-inset" role="button" aria-expanded="false" aria-controls="MegaMenu-Content-{{ forloop.index }}">
<span>{{ item.title }}</span>
<svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
</path></svg>
</summary>
<div id="MegaMenu-Content-{{ forloop.index }}" class="mega-menu__content color-scheme-66d7f298-aeef-43e2-9212-1d262cd03b71 gradient motion-reduce global-settings-popup" tabindex="-1">
<ul class="mega-menu__list page-width mega-menu__list--condensed" role="list">
{%- for subitem in item.links -%}
<li>
<a id="HeaderMenu-{{ subitem.title | handleize }}" href="{{ subitem.url }}" class="mega-menu__link mega-menu__link--level-2 link">
{%- if subitem.type == 'product_link' -%}
{%- assign product = all_products[subitem.object.handle] -%}
{%- if product -%}
{%- if product.featured_image -%}
<img src="{{ product.featured_image | img_url: 'small' }}" alt="{{ product.title }}">
{%- else -%}
<img src="{{ 'placeholder.jpg' | asset_url }}" alt="{{ product.title }}">
{%- endif -%}
{%- endif -%}
{%- endif -%}
<div>{{ subitem.title }}</div>
</a></li>
{%- endfor -%}
</ul>
</div>
</details>
</header-menu>
{%- else -%}
<a id="HeaderMenu-{{ item.title | handleize }}" href="{{ item.url }}" class="header__menu-item list-menu__item link link--text focus-inset">
<span>{{ item.title }}</span>
</a>
{%- endif -%}
</li>
{%- endfor -%}
</ul>
</nav>
现在可以根据这个自定义进行改写上面默认的导航
<nav class="mega-menu">
<ul>
{%- for item in linklists.main-menu.links -%}
<li>
<a href="{{ item.url }}">{{ item.title }}</a>
{%- if item.links.size > 0 -%}
<ul>
{%- for subitem in item.links -%}
<li>
<a href="{{ subitem.url }}">
{%- if subitem.type == 'product_link' -%}
{%- assign product = all_products[subitem.object.handle] -%}
{%- if product -%}
{%- if product.featured_image -%}
<img src="{{ product.featured_image | img_url: 'small' }}" alt="{{ product.title }}">
{%- else -%}
<img src="{{ 'placeholder.jpg' | asset_url }}" alt="{{ product.title }}">
{%- endif -%}
{%- endif -%}
{%- endif -%}
<div>{{ subitem.title }}</div>
</a>
</li>
{%- endfor -%}
</ul>
{%- endif -%}
</li>
{%- endfor -%}
</ul>
</nav>
里面这个如果<a href="{{ item.url }}">{{ item.title }}</a>有子导航时就输出这个<a >{{ item.title }}</a>不要链接就如下那样写:
<nav class="mega-menu">
<ul>
{%- for item in linklists.main-menu.links -%}
<li>
{%- if item.links.size > 0 -%}
<!-- 如果有子导航项,只输出标题 -->
<span>{{ item.title }}</span>
<ul>
{%- for subitem in item.links -%}
<li>
<a href="{{ subitem.url }}">
{%- if subitem.type == 'product_link' -%}
{%- assign product = all_products[subitem.object.handle] -%}
{%- if product -%}
{%- if product.featured_image -%}
<img src="{{ product.featured_image | img_url: 'small' }}" alt="{{ product.title }}">
{%- else -%}
<img src="{{ 'placeholder.jpg' | asset_url }}" alt="{{ product.title }}">
{%- endif -%}
{%- endif -%}
{%- endif -%}
<div>{{ subitem.title }}</div>
</a>
</li>
{%- endfor -%}
</ul>
{%- else -%}
<!-- 如果没有子导航项,输出带有链接的标题 -->
<a href="{{ item.url }}">{{ item.title }}</a>
{%- endif -%}
</li>
{%- endfor -%}
</ul>
</nav>