star back image
people4
電飾 電飾
moon
astronaut

【shopify】商品メタフィールドに登録した画像を表示する

BLOG shopifyWEBログ
読了約:5分

商品詳細ページに、商品ごとに個別にそれぞれ違う画像やテキストを登録して、表示させたい時があると思います。
そんな時に活躍するのが「商品メタフィールド」です。

しかし。あれ?

いつもやってるのに、なんで?画像出ないの。
ただ画像を表示させたいだけなのに。。なんて。

すぐ忘れるし、テンパってるとなおさら出てきません。
以下のようにメタフィールドを作成していました。

商品メタフィールドのスクショ

単純な画像の出し方は2つ程あって、
それがごっちゃになっていたのでした。

<!-- 画像の書き方 1 urlタイプ -->
<img src="{{ product.metafields.custom.material_img.value }}" alt="素材・画像">

<!-- 画像の書き方 2 file_referenceタイプ -->
{{ product.metafields.custom.material_img.value | image_url: width: 600 | image_tag: loading: "lazy", class: "c_img", alt: "素材・画像" }}

上のスクリーンショット画像のメタフィールドだと、<!–画像の書き方 1 urlタイプ –>では表示しれくれません。
<img src=”[object Object]” alt=”素材・お手入れ方法”>
な感じになってしまいます。

登録方法が、file_referenceタイプだからです。

【共有】file_referenceタイプはこう

file_referenceタイプは、画像を登録すると以下のように見えます。

↑画像ファイルを直でUP登録するのです。
出力コードは以下。

<!-- 画像部分 -->
{%- assign material_img_raw = product.metafields.custom.material_img.value -%}
{%- if material_img_raw != blank -%}
  <div class="material-care-image">
    {{ material_img_raw | image_url: width: 600 | image_tag: loading: "lazy", class: "c_img", alt: "素材・お手入れ方法" }}
  </div>
{%- endif -%}

このコード、登録がない時は、表示しない設定になっていますね。

すごい、誰が考えたの(`ェ´)ピャー

urlタイプは「1行テキスト」で

<!–画像の書き方 1 urlタイプ –>でやりたい時は、メタフィールドを「1行テキスト」が良いでしょう。

1行テキストの時の画面

https://example.com/care.jpg
みたいに、URLテキストで登録すると良いでしょう。

shopifyのファイルにUP済みの画像のURLをコピペして登録することになると思います。

<!– 期待する出力 –>
<img src=”https://cdn.shopify.com/s/files/1/xxx/xxx/files/care.jpg” alt=”素材・画像”>

ファイルから欲しい画像を探すのが面倒なんですよね。

慣れでしょうか。

星間旅路のメロディ

「宇宙の静けさに包まれながら、漂流する過去の音楽を捜し求め、銀河の奥底でその旋律に耳を傾ける。」

「この電波はどこの星からきたのだろうか。」

なんだろう。この寂しい気持ちになるのは。

どうしたんですか。