Liquid Snippets by ALSEL
🧭 ヘッダー/フッター/ナビゲーション初級

デスクトップヘッダーのアイコンメニュー

ヘッダー右側に言語選択、顧客アカウント、検索、カートのアイコンをレイアウトするスニペット。各機能の有効化設定に応じて条件付きで表示される。

用途
デスクトップ表示時のグローバルナビゲーション右端に、ユーザーアクションの主要な入口(言語切替、ログイン、検索、カート)をアイコンで配置する場面。
設置場所
snippets/navbar-desktop-icons.liquid に配置し、theme.liquid または sections/header.liquid 内のナビゲーション要素から `{% render 'navbar-desktop-icons' %}` で呼び出す。
注意点
localization.available_countries が複数ある場合のみ言語選択アイコンが表示されるため、Shopify Markets で複数国を設定していることが前提。顧客アカウント表示は shop.customer_accounts_enabled で制御され、管理画面で有効化が必須。検索機能は settings.search の値に依存するため、テーマのカスタマイズ画面で検索を ON にする必要がある。カートアイコンは常に表示されるが、cart-count-badge スニペットが別途存在する前提のため、当スニペット単独では正常動作しない。
タグ:headernavigationicon-menuaccountcartlocalizationaccessibility

コード

51 行 / liquid
<ul class="nav-desktop-icons nav justify-content-end flex-nowrap">
  {% if localization.available_countries.size > 1 %}
    <li class="nav-item me-1">
      <a
        class="nav-link nav-link-icon"
        href="#modal-localization"
        data-bs-toggle="modal"
        aria-controls="modal-localization" 
        aria-label="{{ 'general.accessibility.localization' | t }} {{ localization.country.name }}"
        role="button">
        {{ localization.country | image_url: width: 20, height: 20 | image_tag }}
      </a>
    </li>
  {% endif %}
  {% if shop.customer_accounts_enabled %}
    <li class="nav-item">
      <a 
        class="nav-link nav-link-icon {% if template.name == 'login' or template.name == 'account' %}active{% endif %}" 
        aria-current="{% if template.name == 'login' or template.name == 'account' %}page{% endif %}" 
        href="{{ routes.account_url }}"
        aria-label="{{ 'general.accessibility.account' | t }}">
        {% render 'svg-icons', icon: 'account', size: 20 %}
      </a>
    </li>
  {% endif %}
  {% if settings.search %}
    <li class="nav-item">
      <a
        class="nav-link nav-link-icon" 
        href="#offcanvas-search" 
        data-bs-toggle="offcanvas"
        aria-controls="offcanvas-search" 
        aria-label="{{ 'general.accessibility.search' | t }}"
        role="button">
        {% render 'svg-icons', icon: 'search', size: 20 %}
      </a>
    </li>
  {% endif %}
  <li class="nav-item">
    <a 
      class="nav-link nav-link-icon" 
      href="#offcanvas-cart" 
      data-bs-toggle="offcanvas" 
      aria-controls="offcanvas-cart" 
      aria-label="{{ 'general.accessibility.cart' | t }} {{ cart.item_count }}"
      role="button">
      {% render 'svg-icons', icon: 'cart', size: 20 %}
      {% render 'cart-count-badge' %}
    </a>
  </li>
</ul>

出典・ライセンス

License:
MIT

このコードは kondasoft 著作の MIT ライセンスソースです。 原本の著作権は kondasoft が保有します。日本語訳は ALSEL によるものです。

関連項目

🧭 ヘッダー/フッター/ナビゲーション中級

Alpine.js統合のメニュー開閉

Alpine.js の @click ディレクティブと :class バインディングを使ったメニュー開閉コンポーネント。ボタンクリックで open 状態を切り替え、ul 要素に expanded クラスを条件付きで付与する。

📁 theme-tools·MIT·5
🧭 ヘッダー/フッター/ナビゲーション初級

ヘッダーのレイアウト構造

Web Component のカスタムエレメント `<c-header>` でラップしたヘッダー要素。Tailwind CSS のユーティリティクラスを使い、レスポンシブなパディングとフレックスボックスレイアウトを実装している。

📁 theme-tools·MIT·14
🧭 ヘッダー/フッター/ナビゲーション初級

ナビゲーションバーのロゴ

ストアのロゴをナビゲーションバーに表示し、クリックでホームページに戻るコンポーネント。ロゴ画像がない場合はストア名をテキストで表示する。

📁 ks-bootshop·MIT·18
🧭 ヘッダー/フッター/ナビゲーション初級

決済方法アイコン

ストアで有効な決済手段のアイコンをリスト表示するスニペット。Shopify が提供する `payment_type_svg_tag` フィルタを使い、クレジットカード・Apple Pay・Google Pay などのロゴを自動的に描画する。

📁 ks-bootshop·MIT·18
🧭 ヘッダー/フッター/ナビゲーション初級

グローバルナビゲーションメニュー

Shopify 管理画面の「メインメニュー」リンクリストをループし、トップレベルメニュー + 1階層のサブメニューを描画するスニペット。link.title と sub_link.title を escape フィルターでエスケープして XSS 対策を施している。

📁 shopify-theme-lab·MIT·19
🧭 ヘッダー/フッター/ナビゲーション初級

フッター

ストア共通のフッターセクション。管理画面で設定したフッターメニュー(リンクリスト)をループ表示し、著作権表記を出す。

📁 shopify-theme-lab·MIT·25