もし「type」を設定しなかったり、誤って設定したりしてしまうと、Shopifyはそのセクションをどの領域に表示すべきか判断できません。
-本文中

(最終更新 2025年09月20日)

【Shopify小技】PC版に左のサイドバーを設置!まず「theme.liquid」の構造を知ろう

ShopifyでPC版に最適な左サイドバーを設置する方法を解説。theme.liquidの構造理解からサイドバー領域の追加、CSSによるデザイン調整、Liquid条件分岐での表示ON/OFFまでをわかりやすく紹介。BtoBサイトや多カテゴリーを扱うECに役立つ小技です。

近年ウェブサイトのレイアウトを見ると、サイドバーを持たない1カラム構成が主流になってきているように感じます。

しかしECサイトのPC版に目を向けると、依然としてサイドバーを設置しているケースが少なくありません。

理由の一つは利便性にあります。ユーザーが商品を比較・検討する際、カテゴリや条件をすぐに絞り込めるサイドバーは大きな役割を果たしています。

特にPCからの購入が多いBtoB系のECサイトでは、多岐にわたる商品カテゴリーを備えていることが多いため、サイドバーの存在は重要。そこで本記事では、Shopifyテーマに左サイドバーを設置する方法を考察しながら、その基本となる「theme.liquid」の構造について紹介していきます。

まず「theme.liquid」の構造を知ろう

サイドバーを設置するためには、まず「theme.liquid」の構造を理解しておく必要があります。

「theme.liquid」はテーマ全体に共通する要素を記述するファイルであり、各ページのレイアウトを定義する非常に重要な役割を担っています。

Shopifyの基本構造は「ヘッダー」「メインコンテンツ」「フッター」の3つで構成されており、ヘッダーやフッターはすべてのページで共通して表示されます。

一方、メインコンテンツはページごとに内容が異なり、トップページ、商品ページ、ブログ記事、コレクションページなど、それぞれに対応するテンプレートファイルを持っています。

これらのテンプレートはテーマエディタから編集できるほか、Liquidコードを修正することで細かいカスタマイズも可能です。つまり、「theme.liquid」はサイト全体の骨格を形作る基盤であり、サイドバーを設置する際もこの構造を前提として理解しておくことが重要になります。

サイドバーは、ヘッダーやフッターのようにテーマ全体で共通して表示させることもできますが、Liquidの条件分岐を使えば、ページごとに表示/非表示を制御することも可能です。

たとえば、商品ページやコレクションページでは表示に、トップページやブログ記事では非表示にするといった設定ができるため、利用シーンに合わせた柔軟なレイアウトを実現できます。

「theme.liquid」の構造

ではここで、「theme.liquid」の構造をシンプルに紹介します。実際にファイルを開いてみると、300行を超える大きなボリュームがありますが、基本的には次のような領域に分けられています。

・head領域(<head></head>):meta情報、JavaScriptやCSSの読み込み、titleタグなどを管理

・header領域({% sections ‘header-group’ %}):サイトロゴ、グローバルナビゲーション、検索やカートアイコンなど

・コンテンツ領域({{ content_for_layout }}):トップページや商品ページなど、各ページ固有のテンプレートが展開されるメイン部分

・footer領域({% sections ‘footer-group’ %}):フッターメニュー、コピーライト表記、SNSアイコンなど

このように整理しておくと、サイドバーをどの位置に組み込むのが最適かをイメージしやすくなります。

もちろん、{%- render ‘cart-drawer’ -%}のようにテーマによって追加されているパーツもありますが、基本的なレイアウト構成としては、先ほど紹介した4つの領域で理解しておけば十分です。

ちなみに cart-drawer は、ユーザーが商品をカートに追加した際に表示されるモーダルボックスのような役割を担っており、購入体験を向上させる仕組みの一つです。

サイドバーを設置

では、いよいよPC版表示用の左サイドバーを設置していきます。

なぜ「左」なのかというと、もともとブログなどでは右側にサイドバーを配置するケースも多く見られましたが、近年のECサイトでは左側にサイドバーを置くデザインが主流になっているため。ユーザーの視線の流れや操作性を考慮すると、左サイドバーの方が自然に利用されやすい傾向があります。

サイドバーを設置するには、これまで説明した基本レイアウトに新たな領域を組み込む必要があります。

お気づきかもしれませんが、Shopifyの各パーツは {% sections ‘〇〇〇’ %} という形で読み込まれています。そして、この呼び出しには2種類があり、サイドバー領域に複数のセクションを配置する場合は「sections(セクションたち)」を、一方で単一のセクションで構成する場合は「section」 を使用します。

sideBar-group.jsonを作成

今回は、テーマエディタから柔軟にカスタマイズできるようにしたいので、サイドバーは {% sections ‘〇〇〇’ %}を使って進めていきます。これにより、複数のセクションをまとめて管理でき、管理画面上からも追加・編集がしやすくなります。

まずは、「sections」フォルダ内に「sideBar-group.json」を作成します。以下はそのサンプルコードです。

{
"name": "sideBar-group",
"type": "aside",
"sections": {
"main": {
"type": "sideBar",
"settings": {}
}
},
"order": [
"main"
]
}

このコードでは、「sideBar-group」という新しいセクション・グループを定義しています。中には「sideBar.liquid」というセクションを読み込む形になっており、必要に応じて追加の設定を組み込むことも可能です。

注意点として「sideBar-group.json」の「type」は「aside」 に設定する必要があります。

※なぜ「aside」なのか。

「type」を指定するのは、Shopifyに「このセクションはどの枠に属するのか」を認識させるためです。Shopifyのテーマエディタでは、「ヘッダー」「フッター」「メインコンテンツ」「aside(補助領域)」 といったエリアごとに編集パネルが分かれています。

もし「type」を設定しなかったり、誤って設定したりしてしまうと、Shopifyはそのセクションをどの領域に表示すべきか判断できません。結果として、テーマエディタに正しく表示されなかったり、意図しない場所に組み込まれてしまう可能性があります。

sideBar.liquidを作成

では、作成した「sideBar-group.json(サイドバー領域)」のメインを担うセクションとして「sideBar.liquid」を作成します。

今回はできるだけシンプルに、ul-liでリンクを並べるだけのサイドバーを用意してみます。

{% schema %}
{
"name": "サイドバー",
"presets": [
{ "name": "サイドバー" }
]
}
{% endschema %}

<!-- シンプル版サイドバー -->
<ul class="sideBar-list">
<li><a href="/collections/sub">サブカテゴリー1</a></li>
<li><a href="/collections/sub-2">サブカテゴリー2</a></li>
<li><a href="/collections/sub-3">サブカテゴリー3</a></li>
<li><a href="/collections/sub-4">サブカテゴリー4</a></li>
</ul>

for文を活用すれば、特定のコレクションを画像付きでサイドバーに表示することも可能です。

以下は、ハンドルが 「main」 のコレクションを読み込み、登録されている代表画像とタイトルを並べるサンプルコードです。

{% schema %}
{
"name": "サイドバー",
"presets": [
{ "name": "サイドバー" }
]
}
{% endschema %}

{% assign target_handles = 'main' | split: ',' %}

<ul class="collection-list">
{% for handle in target_handles %}
{% assign current_collection = collections[handle] %}
{% if current_collection %}
<li class="collection-item">
<a href="{{ current_collection.url }}">
<img src="{{ current_collection.featured_image | img_url: '200x200' }}"
alt="{{ current_collection.title | escape }}">
<h3>{{ current_collection.title | escape }}</h3>
</a>
</li>
{% endif %}
{% endfor %}
</ul>

サイドバー領域をtheme.liquidに組み込む

次は、作成した「sideBar-group.json(サイドバー領域)」を theme.liquid に組み込みます。上述のとおり、サイドバー領域には複数のセクションを配置したいので、呼び出しは「{% sections ‘sideBar-group’ %}」とします。

メインコンテンツと横並びにする関係で、main内にサイドバー用の枠とページ本体の枠を用意します。

<main id="MainContent" class="content-for-layout focus-none" role="main" tabindex="-1">
<div class="sideBar">
{% sections 'sideBar-group' %} //サイドバー領域
</div>
<div class="pageMain">
{{ content_for_layout }} //本体
</div>
</main>

PC版のデザインでは、各枠のサイズなどをCSSで調整すれば問題ありません。また、スマホ版でサイドバーを非表示にしたい場合も、同様にCSSで制御することができます。

以下はCSSでの調整例です。

#MainContent {
display: flex;
gap: 24px;
}

.sideBar {
width: 260px;
}

.pageMain {
flex: 1;
}

さらに、ページごとにサイドバーを表示・非表示に切り替えたい場合には、Liquidの条件分岐を利用します。たとえばトップページだけサイドバーを非表示にする場合は、以下のようにテンプレートを判定するコードを加えます。

{% if template == 'index' %}
//トップページでは非表示 
{% else %}
<div class="sideBar">
{% sections 'sideBar-group' %}
</div>
{% endif %}

theme.liquidにサイドバー領域の組み込みを完了すると、テーマエディター上で新しい枠が追加されていることを確認できます。また、その枠には他のセクションを追加できるようになっているはずです。

以上、Shopifyで左サイドバーを設置する小技の紹介でした。

冒頭でもお話ししたように、BtoB系のECサイトや、多岐にわたる商品カテゴリーを備えているECサイト、そしてPCでの購入が多いECサイトにおいては、サイドバーの設置は欠かせない工夫になるかもしれません。

カテゴリーだけでなく、タグクラウドや営業日カレンダーなどを配置すれば、さらに利便性や情報提供の幅が広がります。ぜひご活用ください。

初めまして。運営者ホリと申します。

当ブログは「Shopifyを一緒に悩んで楽しむ仲間」に向けて情報を発信するブログです。

ここで扱うテーマは、構築やカスタマイズにとどまらず、SEOマーケティングやロジスティクスといった運営全般に広がります。

中でも最も重要視するのは、Shopifyを使った構築や運営に携わる中で「大掛かりな開発と投資に頼らなくても目的を達成できる工夫」。

確かな知識と経験を土台にしながら、日々の学びを記事にまとめて、同じように試行錯誤している方々とシェアしています。 日々の実践から得た知見を記事にまとめることで、Shopifyを使う仲間たちの小さなヒントや発想のきっかけになればうれしいです。

「ちょっと聞いてみたい」「これで大丈夫?」といった気軽な相談も大歓迎です。 Shopifyを通じて一緒に試行錯誤しながら、学び合える場として、このサイトを活用していただければ幸いです。

このブログと運営者について

お問い合わせ

BLOG More

SEO

1週間前

生成AI時代だから享受できるSEOのメリット4選

「SEOオワコン」「SEO死亡説」といった刺激的な言葉も目立つようになっています。..

SEO

3週間前

格安SEOの「なぜ?」外注の前に読んでおきたい、料金の差が生まれる理由

「高い=ぼったくり」「安い=怪しい」と単純に判断できるものではない‥..

Js

1か月前

【Shopify小技】ブログ記事内にコレクションカード(ショートコード)を設置する

記事自体のSEO効果も十分に期待できる施策になりますので、ぜひ活用してみてください。..

Js

1か月前

【Shopify小技】ブログ記事内に商品カード(ショートコード)を設置する

記事の途中で商品を紹介したい場面は多いのに、標準機能ではカード型で見栄えよく表示する仕組みがありません。..

Liquid

1か月前

【Shopifyの裏】フォーム(form)の仕組みについて

フォーム送信の裏側では Shopifyのエンドポイントが動いており、そこで行われる処理はブラックボックス..

Liquid

2か月前

【Shopify小技】あれ何で?DawnテーマでLine Item Propertiesが動作しない件

分割払いに関する入力情報を扱うためのもので、商品情報をカートへ送信する役割を持っていません。..

Js

2か月前

【第1回目】Shopify「cart.js」のトリセツ・まずざっくり全体像を掴もう!

① onChange() → ② updateQuantity() → ③ publish → ④ connectedCallback > onCartUpdate()という順番で動いています。..

Liquid

2か月前

【Shopify小技】折りたたみブロック(collapsible_tab)にアイコンを追加したい!

「少し見た目をユニークにしたい」「renderスニペットの動きを深く理解したい」..

Liquid

2か月前

【Shopify小技】タグで絞り込むコレクションページを実装!基本となるオブジェクト「current_tags」とは

Shopifyのコレクションページでは 複数タグの「AND」条件による絞り込みが自然に実現されており‥..

設定

2か月前

【Shopifyレポート】毎月の在庫と販売数を一目で確認したい!「商品別の毎日販売された在庫最」とは

おかげで、数字に超厳しい経理担当からもめちゃくちゃ褒められたほどです。..

Liquid

3か月前

【Shopify小技】パスワードをお忘れですか?を押しても遷移しない‥エラーのシンプルな解決方法

厳密にいえば、新しいページへ遷移しているわけではなく、同じページ内でJavaScriptとCSSを使い、二つのフォームを切り替えて見せているだけ..

Flow

3か月前

【Shopify小技】Cart attributesの内容は注文一覧で確認とれない‥その対策を考えてみた

残念ながら、注文一覧の「列」にCart attributesの値を直接取得・表示する機能が用意されていません。..

Js

3か月前

【Shopify小技】購入時ログイン必須の導線改善に役立つ「最近見た商品」一覧を作成

商品数が多かったり、購入までの導線が複雑なショップでは、ユーザーが途中で迷子になってしまうこともあります。..

設定

3か月前

Shopifyを使うなら検討してみたい発送代行システム「ロジレス」使い勝手と感想

「次回のレクチャーまでにこの動画を数本観ておいてくださいね」といった“宿題(?)”も出されます。..

Liquid

3か月前

【Shopify小技】PCとスマホで違うメニュー構成にする簡単な方法

「linklists.mobile-menu.links」ではなく「linklists['mobile-menu'].links」のようにブラケット記法で記述するのが安全..

Liquid

3か月前

【Shopify小技】メタフィールドで解決!商品ごとに手動でおすすめ一覧を作成

メタフィールドでは「.value」を使って直接オブジェクト配列を扱うのが正しい方法です。..

Liquid

3か月前

【Shopify小技】関連・おすすめ商品(recommendations)から特定の商品を手動で除外する

テーマエディタで選んだ商品(除外対象)のIDを配列にまとめ、その配列に含まれていない商品だけを「unless」を使って表示する..

設定

4か月前

【Shopify豆知識】テーマレイアウトをカスタマイズしたい?なら「grid-template」を知っておくべき

「スマホではロゴを左側に、PCではロゴを中央に」といった調整も、「grid-template」の設定次第で柔軟に実現できます。..

設定

4か月前

【Shopify小技】商品ページごとのFAQをメタオブジェクトで実装してみた

実際には「ピックアップ可能な店舗情報」や「割れやすい商品の配送注意点」など、商品ごとに異なる補足情報‥..

Liquid

5か月前

【Shopify Liquid】テーマで実際使用される「render」の引数と渡り値 その役割を解説

それぞれの変数の意味を押さえておけば、ある程度は読み解くことができると思います。..

アプリ

5か月前

【Shopifyアプリ】シンプル&レスポンシブ!直感的に使えるカレンダー「The Shop Calendar」でイベント・営業日を表示

The Shop Calendarは、カレンダー形式・一覧形式に加え、現在(2025年9月時点)β版としてアコーディオン形式にも対応しています。..

アプリ

5か月前

写真ギャラリーが複数作成できる!Shopify無料アプリ「GA Image Gallery」

ただし、「Advanced Setup」の方は動画を見ても最初はすんなり理解しづらいかもしれません。..

SEO

6か月前

【Shopify豆知識】だからSEOに強いのか!構造化データ(JSON-LD)について解説

しかし実際には、検索結果やGoogleショッピングにおいて、価格や在庫、バリエーション情報を正しく表示するための大事な役割を担っています。..

Liquid

6か月前

【Shopify豆知識】スキーマ設定(JSON)「t:」から始まる文字列とは‥実は変数パスではない?

Shopifyは「"t:"」以下のパスをたどって "label" の値(ここでは「クマさんのお顔」)を取得し、テーマエディタ上で表示します。..

Liquid

6か月前

【Shopify Liquid】スニペットファイルを呼び出す「render」引数と渡り値とは?

この仕組みによって、スニペットは渡されたデータに基づき、表示ロジックに沿って商品画像や商品名、価格などを表示できるようになります。..

制作アイディア

6か月前

Shopify構築をフリーランスへ代行依頼する手順(1~6)と選ぶポイント

私自身の体験としておすすめしたいのが「電話対応ができるフリーランス」を選ぶことです。..

Liquid

6か月前

【Shopify Liquid】オブジェクトの絞り込みに用いる「where」フィルタとは

たとえば、「販売元(vendor)」が「Nintendo」の商品だけを抽出したい場合は、以下のように書きます。..

制作アイディア

6か月前

Shopify構築をフリーランスへ依頼するメリットは費用だけではない!課題点も紹介

その「必死さ」や「ファイティングスピリット」は、柔軟かつ誠実な対応として依頼主にとって大きな安心材料となることも..

制作アイディア

6か月前

【リアルレポート】Shopify構築をフリーランスに依頼する際の相場と費用内訳

ECストアは今や単なる販売ツールではなく、実店舗と同じ、あるいはそれ以上に重要性と存在感を持つものとなっています。..

Js

7か月前

Shopifyにおける「カート追加」の仕組みを理解する!form送信 vs fetch API活用

fetch APIに用いられる「/cart/add.js」は、form送信の「/cart/add」と同様、「仮想的なエンドポイント」になります。..