商品情報にスキップ
1 1
公開日:2026.04.04

【Horizon】Shopifyのテーマ「Horizon」のドロワーメニュー上部にバナー画像を表示する設定例

【Horizon】Shopifyのテーマ「Horizon」のドロワーメニュー上部にバナー画像を表示する設定例

用途

  • メニュー編集
詳細を表示する

このページの内容

2つの方法を比較する

方法1:Liquidカスタマイズ版 方法2:カスタムLiquid+JS版
テーマ本体の変更 あり(5ファイル) なし
テーマエディタからの管理 可(ドロワーバナー設定パネル) 不可(コード内のURLを書き換え)
テーマアップデートの影響 受ける可能性あり(要確認) 受けない
実装の手順数 5ファイル変更+翻訳キー追加 カスタムLiquidに貼るだけ
バナー表示位置 メニュー項目より上 ナビゲーションリスト下部
Horizonアニメーション対応 あり あり(MutationObserver使用)

方法1:Liquidカスタマイズ版

テーマエディタの「ドロワーバナー」設定から画像とリンク先を変更できる本格的な実装方法です。テーマのアップデート後も設定が保持され、CSSの読み込みには custom.globals.liquid スニペットを活用しており、theme.liquid への変更を1行に抑えた安全な実装です。

完成イメージ

ハンバーガーアイコンをタップするとドロワーが開き、メニュー項目より上にバナー画像が表示されます。バナーにリンク先を設定すれば、クーポンページや特集ページへの誘導に使えます。

Horizonテーマのドロワーメニュー上部にバナー画像が表示されている例


テーマエディタでの設定

実装後はコードを触らずに、テーマエディタのメニューブロック内「ドロワーバナー」セクションから画像とリンク先を設定できます。

テーマエディタのドロワーバナー設定パネルで画像とリンク先を設定している様子



実装手順

変更・作成するファイルは5つです。テーマの直接編集(theme.liquid の変更)は1行のみで、残りはすべて新規ファイルの作成か既存ファイルへの追記です。


① layout/theme.liquid — L30 に1行追加

stylesheets スニペットの直後に custom.globals の読み込みを追加します。これがテーマファイルへの唯一の変更です。

layout/theme.liquid の L30 に custom.globals の render タグを追加したコード


② snippets/custom.globals.liquid — 新規作成

custom.csscustom.js を読み込む中間スニペットです。このパターンにより、theme.liquid への変更を1行に抑えつつ、今後のカスタマイズもこのスニペット経由で管理できます。

snippets/custom.globals.liquid の全体コード。custom.css と custom.js を読み込む link タグと script タグ


③ assets/custom.css — 新規作成

バナーのスタイルを定義します。border-radius にはテーマのCSS変数を使い、テーマの角丸設定に追従するようにしています。

assets/custom.css の全体コード。ドロワーバナーの padding と border-radius を定義


④ blocks/_header-menu.liquid — スキーマに設定フィールドを追加

ファイル末尾の settings 配列の最後(drawer_dividers の直後)に、バナー画像とリンク先の設定フィールドを追加します。

blocks/_header-menu.liquid の schema settings 末尾に drawer_banner の設定フィールドを追加したコード


⑤ snippets/header-drawer.liquid — バナー表示コードを追加

閉じるボタン(</button>)の直後、<nav> タグの直前にバナー表示コードを挿入します。リンク先が設定されている場合は <a> タグで囲み、設定されていない場合はリンクなしで画像のみ表示します。

snippets/header-drawer.liquid の nav タグ直前にバナー表示コードを挿入したコード


翻訳キーの追加

スキーマに追加した t:content.drawer_banner / t:settings.drawer_banner_image / t:settings.drawer_banner_link に対応する翻訳キーをロケールファイルに追加します。


locales/en.default.schema.jsoncontent / settings オブジェクトに追加します。

locales/ja.schema.json — 同様に content / settings オブジェクトに追加します(翻訳キーの内容はコード内に含まれています)。


【補足】custom.globals.liquid パターンについて

テーマに独自のCSSを追加する方法はいくつかありますが、theme.liquid に直接 <link> タグを書く方法はテーマアップデート時に差分が生じやすく管理が煩雑になります。custom.globals.liquid スニペットを挟む構成にすることで、theme.liquid への変更を {%- render 'custom.globals' -%} の1行だけに限定できます。将来カスタムJSを追加したい場合も custom.globals.liquid 側を変更するだけで済みます。


【補足】menu-drawer__animated-element クラスについて

バナー要素に menu-drawer__animated-element クラスを付与しているのは、Horizonテーマ標準のドロワーアニメーション(フェードインや下から滑り込む動き)をバナーにも適用するためです。--menu-drawer-animation-index: 0 でアニメーション順序を最初(0番目)に指定しており、メニュー項目よりも先にアニメーションが開始されます。


方法2:カスタムLiquid+JavaScript版

テーマ本体のファイルを一切変更せず、「カスタム Liquid」セクションへのコード貼り付けだけで実装できる簡易版です。

完成イメージ

テーマエディタでカスタムLiquidセクションにコードを貼り付けた設定例とドロワー表示結果

この方法の特徴

項目 内容
変更ファイル数 0(テーマ本体を変更しない)
設定場所 テーマエディタ →「カスタム Liquid」セクション
テーマ更新の影響 受けない
バナー変更方法 コード内の2か所のURLを書き換えて保存

設定手順

  1. Shopify管理画面「コンテンツ」→「ファイル」からバナー画像をアップロードし、URLをコピーする
  2. サンプルコードの banner_image_urlbanner_link_url を書き換える
  3. テーマエディタで任意のページ(全ページ共通のフッターなど)に「カスタム Liquid」セクションを追加し、コードを貼り付けて保存する

補足

  • バナーはナビゲーションリストの直下、ユーティリティリンク(アカウント・カートなど)の上に表示されます
  • Horizonはページ読み込み後にJavaScriptでドロワーの内容を更新する仕組み(Section Hydration)を持ちます。サンプルコードはこの更新が完了したタイミングで再挿入する実装になっています

ご購入(すべて¥0です)いただくと、サンプルコードをご覧いただけるようになります。

すでにご購入済みの方はこちらからログインしてください。

サンプルコード

動作検証済テーマ:Horizon 3.4.0

① layout/theme.liquid — L30 に1行追加

② snippets/custom.globals.liquid — 新規作成

③ assets/custom.css — 新規作成