shopifyのヘッダーをliquidでカスタマイズした例文コードパート1 |
これらのコードは、Shopifyテーマの「header.liquid」ファイルに記述することができます。このファイルは、サイトのヘッダー部分を構成するHTMLを含むものです。これらのコードを挿入することで、Shopifyサイトのヘッダーをカスタマイズすることができます。 Shopifyの管理画面から、「オンラインストア」>「テーマ」>「HTML/CSSの編集」を選択し、「header.liquid」ファイルを選択して編集することができます。ここで記述したコードは、サイト全体のヘッダーに適用されます。 「header.liquid」ファイル内で、コードを挿入する場所は異なりますが、一般的に次のようになります。 例1: ロゴを追加する場合
|
1.「ヘッダー」にロゴを表示するコード:
<a href="/" class="header-logo"> <img src="{{ 'logo.png' | asset_url }}" alt="{{ shop.name }}"> </a> </header> |
このコードは、Shopifyテーマ内の「ヘッダー」セクションにロゴを表示するためのものです。
<a>タグ内には、ロゴをクリックした際に表示するページのURL(この場合はトップページ)を指定します。
"class='header-logo'" は、Webサイトのロゴをスタイルするために使われるCSSクラスです。このクラスは、同じクラス名を持つCSSスタイルルールとリンクすることでロゴにスタイルを適用します。
"header-logo"クラスはShopifyの標準設定ではありません。これは、特定のShopifyストアのロゴにスタイルを適用するためにテーマデザイナーまたは開発者が作成したカスタムクラスです。このクラスの使用は、ストアのテーマに設定された特定のデザインやスタイルに依存します。 Shopifyは、ストアのWebサイトの要素をスタイリングするために使用できる一連の標準クラスを提供しますが、"header-logo"クラスはその一部ではありません。
<img>タグ内には、ロゴの画像ファイルへのURLを指定します。ここでは、「logo.png」というファイルをasset_urlフィルタを使って表示しています。
alt属性には、ロゴ画像が表示できない場合に代替として表示するテキストを指定します。ここでは、「shop.name」という変数を使ってショップ名を表示しています。
2.「ヘッダー」に検索フォームを表示するコード:
<form action="/search" method="get" class="header-search-form"> <input type="text" name="q" placeholder="{{ 'search.generalSearchForm.search_placeholder' | t }}" class="header-search-input"> <button type="submit" class="header-search-submit"> <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-search" viewBox="0 0 20 20"> <path d="M18.64 17.67l-5.03-5.03c.71-1.05 1.14-2.32 1.14-3.7 0-3.87-3.13-7-7-7s-7 3.13-7 7 3.13 7 7 7c1.38 0 2.65-.43 3.7-1.14l5.03 5.03c.2.2.45.3.7.3.25 0 .5-.1.7-.3.39-.39.39-1.02 0-1.42zM7 12c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z" fill-rule="evenodd"></path> </svg> </button> </form> |
このコードはHTMLによる検索フォームを作成するためのものです。以下が詳細な解説です。
<form>タグ: このタグは検索フォームを定義するためのものです。以下が2つの主要な属性です。
action: この属性は、検索フォームを送信するためのURLを指定します。この例では、"/search" というURLが指定されています。
「action="/search"」は、Shopifyでこのままでは使えません。このアクション属性は、検索フォームの送信先を指定するものですが、Shopifyは標準ではこのようなURLを提供していません。
この設定 action="/search" は、Shopify でのショップ内の検索ではありません。この設定は、フォームが送信された際に、送信先のURLを指定するものです。これは、この例では "/search" というURLに送信することを示しています。具体的には、送信先サーバーに接続され、検索結果を表示するページにアクセスすることができます。実際には、このURLは実際のWebサイトに合わせて変更される必要があります。
「action="/search"」に設定するURLは、検索フォームが送信された際に処理されるサーバー上のエンドポイントを指します。このURLは、通常はWebサイトのサーバー上にあるアプリケーションサーバー(例えばPHP、Ruby on Rails、Node.jsなど)によって提供されます。
method: この属性は、検索フォームで入力されたデータをサーバーに送信するための方法を指定します。この例では、"get" メソッドが指定されています。これは、検索フォームで入力されたデータをURLのクエリ文字列として送信することを意味します。
<input>タグ: このタグは検索フォームに入力するためのテキストボックスを作成するためのものです。以下が2つの主要な属性です。
name: この属性は、サーバーに送信されるデータのキーを指定するものです。この例では、"q" という名前が指定されています。
placeholder: この属性は、テキストボックスに表示されるプレースホルダーテキストを指定するものです。この例では、"search.GeneralSearchForm.search_placeholder" | t というテキストが指定されています。このテキストは、ある種のテンプレートエンジン (ここでは"t"と呼ばれているもの) を使用して翻訳されることが想定されています。
<button>タグ: これは検索フォームでの検索を実行するためのボタンを表しています。内部には、検索アイコンを表すSVGタグが含まれています。
<svg>タグ:このタグはSVG形式の画像を定義するためのものです。以下の要素を含んでいます。
aria-hidden:アクセシビリティ上の目的で、この画像をスクリーンリーダーから非表示にするために使用されます。
focusable:この画像がキーボードフォーカスを受け取れるかどうかを指定するために使用されます。
role:この画像がウェブページ上でどのような役割を果たすかを指定するために使用されます。
class:この画像にスタイルシートを適用するために使用されます。
viewBox:この画像の描画領域を指定するために使用されます。
2.<path>タグ:このタグはSVG形式の画像にベクトルグラフィックを追加するために使用されます。以下の要素を含んでいます。
d:このパラメーターはベクトルグラフィックを記述するためのパスデータを指定するために使用されます。
fill-rule:このパラメーターはベクトルグラフィックの中に含まれる領域の色を塗るためのアルゴリズムを指定するために使用されます。
【メモ】 ・テキストボックス (Text Box) は、ユーザーが文字列を入力することができる HTML の要素です。 ・プレースホルダーテキスト (Placeholder Text) は、ユーザーがテキストボックスに入力する前に見える仮のテキストです。これは、テキストボックスの意味や内容を示すために使用されます。 ・SVG (Scalable Vector Graphics) は、ベクトルグラフィックス形式です。 SVG 画像は、解像度に関係なく綺麗な形で表示されます。この例では、検索アイコンを表示するために使用されています。 |
3.「ヘッダー」にメニューを表示するコード:
<nav class="header-nav"> <ul class="header-nav-list"> {% for link in linklists.main.links %} <li class="header-nav-item"> <a href="{{ link.url }}" class="header-nav-link">{{ link.title }}</a> </li> {% endfor %} </ul> </nav> |
このコードは、Webページのヘッダー内にリンクリストを表示するためのHTML/Liquidテンプレートです。
<nav class="header-nav">: このタグは、ヘッダー内に表示されるナビゲーションメニューを表します。クラス名 "header-nav" は、このナビゲーションメニューをスタイルするためのCSSを指定するために使用されます。
<ul class="header-nav-list">: このタグは、リンクの一覧を表示するためのunordered list(順序のないリスト)を定義します。クラス名 "header-nav-list" は、このリストをスタイルするためのCSSを指定するために使用されます。
{% for link in linklists.main.links %}: このタグは、Liquidテンプレートのfor loopを定義します。このfor loopは、linklists.main.linksという名前のリンクリストからリンクを1つずつ取り出し、次のタグで定義されたHTMLを繰り返し生成します。
<li class="header-nav-item">: このタグは、unordered list内の1つのリストアイテムを表します。クラス名 "header-nav-item" は、このリストアイテムをスタイルするためのCSSを指定するために使用されます。
<a href="{{ link.url }}" class="header-nav-link">{{ link.title }}</a>: このタグは、リンクを表示するためのHTML anchor(アンカー)タグです。href属性はリンクのURLを指定します。このURLは、for loopで取り出されたリンクのurlプロパティから取得されます。class属性 "header-nav-link" は、このリンクをスタイルするためのCSSを指定するために使用されます。リンクのテキストは、for loopで取り出されたリンクのtitleプロパティから取得されます。
このコードは、リンクリストを表示するためのHTMLを生成するLiquidテンプレートです。リンクリストは、名前が "linklists.main.links" のリンクリストから取得されます。このリンクリストには、複数のリンクが含まれています。このLiquidテンプレートは、for loopを使ってこれらのリンクを一つずつ取り出し、<li class="header-nav-item">タグを使ってリンクを表示するHTMLを生成します。生成されたHTMLは、<nav class="header-nav">タグ内に含まれています。
このLiquidテンプレートを使用することで、リンクリストを効率的かつ簡単にWebページに表示することができます。
【メモ】 ■ulとliを説明 <ul>は「unordered list」の略で、順序を意識しないリストを表示するためのHTMLタグです。通常、順序を意識しないリストには、箇条書き(番号付けされていないリスト)が含まれます。 <li>は「list item」の略で、<ul>タグ内で使用されます。それぞれの<li>タグは、順序を意識しないリストに含まれる項目を表します。 例えば、次のようなHTMLを考えます:
このHTMLは、次のようにブラウザ上で表示されます: 項目1
■linklists.main.linkと{{ link.url }}、{{ link.title }}の3つの説明 {{ link.url }}: これは、各リンクのURL(Webページアドレス)を表します。URLは、そのリンクが指すWebページを識別するアドレスです。{{ link.url }}は、for loopを使って取り出された各リンクのURLを表示するために使用されます。 {{ link.title }}: これは、各リンクのタイトルを表します。タイトルは、そのリンクを表すテキストです。例えば、「ホーム」、「製品」などです。{{ link.title }}は、for loopを使って取り出された各リンクのタイトルを表示するために使用されます。 linklists.main.links、{{ link.url }}、{{ link.title }}の情報は、Shopifyのバックエンド管理画面にあります。具体的には、Shopifyストアの管理画面で「ナビゲーション」セクションを開くと、リンクリストを作成または編集することができます。このリンクリストは、Shopifyのデータベースに保存されます。 また、ShopifyはAPIを提供しているため、リンクリスト情報を外部のアプリケーションから取得することもできます。これにより、リンクリスト情報を外部のアプリケーションと統合することもできます |
4.「ヘッダー」にロゴを表示するコード:
<a href="/" class="header-logo-link"> <img src="{{ settings.logo | img_url: 'large' }}" alt="{{ shop.name }} logo" class="header-logo-image"> </a> |
このコードは、Shopifyテーマ内の「ヘッダー」セクションにロゴを表示するためのものです。
<a>タグ内には、ロゴ画像のリンク先URL(この場合は「/」)を指定します。
<img>タグ内には、ロゴ画像のソースURL(この場合は「{{ settings.logo | img_url: 'large' }}」というLiquid変数)と代替テキスト(この場合は「{{ shop.name }} logo」という変数)を指定します。「img_url」フィルターを使って、ロゴ画像のURLを変換します。
{{ settings.logo | img_url: 'large' }} と {{ shop.name }} は、Shopifyストアで使用することができる Liquid 変数の例です。
{{ settings.logo | img_url: 'large' }}は、Shopifyストアの設定で設定されたロゴ画像のURLを参照する変数です。 img_url フィルターは、画像のURLを生成するために使用されます。 引数 'large' は、画像のサイズを指定するために使用されます。
{{ shop.name }}は、Shopifyストアの名前を参照する変数です。この情報はShopifyのデータベースに保存され、ストアのテンプレートで取得して使用することができます。
これらの両方の変数はShopifyのバックエンドデータベースに格納されており、Shopify API経由でアクセスすることができます。 Liquidコードでは、これらの変数が参照され、ストアのページのHTMLを動的に生成するために使用されます。
【メモ】 'large'は、画像のサイズを指定するために使用されています。これはShopifyが提供する画像のサイズの一つであり、Shopifyではデフォルトでいくつかの画像サイズが定義されています。 'large'はそのうちの一つです。 これにより、画像のURLを生成する際に、ShopifyはそのURLにサイズ指定を加え、適切な画像を返すようになります。 例えば、 {{ settings.logo | img_url: 'large' }} は、Shopifyのデータベースからロゴ画像のURLを検索し、 'large'サイズの指定を加えます。このURLは、imgタグのsrc属性として使用され、ブラウザーには、大きなロゴ画像が表示されるようになります。 |
5.「ヘッダー」にカート情報を表示するコード:
<a href="/cart" class="header-cart"> <span class="header-cart-icon"> <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-cart" viewBox="0 0 24 24"> <path fill="#444" d="M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14 </svg> </span> <span class="header-cart-count">{{ cart.item_count }}</span> </a> |
「a」タグを使って「href」属性を設定し、「cart」ページにリンクすることで、カートアイコンがクリックされたときにカートページにアクセスできるようになります。
<a href="/cart" class="header-cart">
次に、「span」タグを使って「header-cart-icon」というクラスを設定し、カートアイコンを表示するための要素を作ります。
<span class="header-cart-icon">
さらに、「svg」タグを使って「cart」アイコンを作成します。「aria-hidden」属性を「true」に設定することで、アクセシビリティツールで読み上げされないようになります。「focusable」属性を「false」に設定することで、フォーカスが当たらないようになります。「role」属性を「presentation」に設定することで、アクセシビリティツールに意味を持たせないようになります。「class」属性を「icon icon-cart」に設定することで、スタイルシートでアイコンのスタイルを指定することができます。「viewBox」属性を「0 0 24 24」に設定することで、アイコンの大きさを指定します。
<svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-cart" viewBox="0 0 24 24">
最後に、「path」タグを使って「fill」属性を「#444」に設定し、アイコンの色を指定します。「d」属性を使ってアイコンの形状を指定します。
<path fill="#444" d="M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0
これらのページは私がテーマとしている技術を独自に追及しているサイトになりますので、ページ内に書かれている技術と考えをご使用になる場合は当方では一斉責任を負えませんので自己責任でご使用くださいますようお願いいたします。 |