Liquid、JavaScriptなどに関する質問
テーマはDawnを利用しています。
初歩的なことかもしれませんが、block.settings.○○の使い方についてアドバイスいただけますと助かります。
リキッドファイル内の下記のコードについて、 block.settings.photo01 ~ block.settings.photo08 を、配列に格納して、ifの条件式((配列(photosBlock)の中の一つを指定)の部分)に利用したいです。
{% assign photosBlock = 'block.settings.photo01,block.settings.photo02,block.settings.photo03,block.settings.photo04,block.settings.photo05,block.settings.photo06,block.settings.photo07,block.settings.photo08'|split:','%} {% if (配列(photosBlock)の中の一つを指定) %} //ここに挙動を記述 {% endif %}
block.settings.photo01 の部分を photosBlock[0] の形式に置き換えて表示を検証してみましたが、意図通りに動作しませんでした。
※block.settings.photo03 が有効になっていない場合でも {% if photosBlock[2] %} のif内の挙動が実行されてしまいます。
{% assign photosBlock = 'block.settings.photo01,block.settings.photo02,block.settings.photo03,block.settings.photo04,block.settings.photo05,block.settings.photo06,block.settings.photo07,block.settings.photo08'|split:','%} /*意図通りに動作する*/ {% if block.settings.photo01 %} console.log("photo01あるなら表示"); {% endif %} {% if block.settings.photo03 %} console.log("photo03あるなら表示"); {% endif %} /*意図通りに動作しない*/ {% if photosBlock[0] %} console.log("photo01あるなら表示"); {% endif %} {% if photosBlock[2] %} console.log("photo03あるなら表示"); {% endif %}
もしお気づきの点があればアドバイスいただけますと幸いです。
よろしくお願いいたします。
Nishi-Ec 様
お世話になっております。
推測ですが、photosBlock配列に入れることで、block.settings.photo01などが変数でなく文字列になっている可能はないでしょうか。
例えば以下のコードだと、sweets配列内は全て文字列で出力されるかと思います。
{% assign sweets = 'cake, icecream, crepe, applepie, tart' | split: ', ' %}
{% for item in sweets %}
<p>sweets:{{ item }}</p><br>
{% endfor %}
なにかヒントになれば幸いです。
2月に、新しい英語版AMAディスカッションボードで2週間にわたって初めてのコミュニティAMAを開催しました。
By SarahF_Shopify Mar 19, 2023不正注文やチャージバック被害はビジネスへ大きな被害を与えます、このブログでは簡単な防止策を紹介し、ストア保護を最適化します
By Mirai Mar 13, 2023Eコマースの自動化に関して大きな告知がございます。2022年3月22日より、Shopify FlowをAdvanced(プレミアム)プランの全てのご利用者様に提供を開始しました。...
By Nanami Feb 17, 2023